启动后正常,每次修改了 Ruby 代码会导致报错,重启服务器就好了。
Lotus::Model::Adapters::NoAdapterError in PostsController#edit
Cannot invoke `find' without selecting an adapter. Please check your framework configuration.
rails 如何做到改代码不用启动服务器的呢?不知道可有解决办法?请教各位。
最近开始学习 Lotus 框架,文档中提到 Lotus 的设计思路来自 Clean Architecture,如下图所示:
可以看到 Entity(相当于 Rails model)居于核心,DB 在外围,Repository 作为数据中介。采用的是松耦合结构。Rails 中 model、db、view 是强耦合的。
架构:The Clean Architecture(整洁的架构)(转载)
我学习了入门课,因为了解有限,留待以后再探讨了。
由于 Lotus 是模块化的,所以我想到了在 Rails 中引入 Lotus model,这样学习成本比较低。 可以有效利用现有的 Rails 资源。
试验还比较顺利:
* 只是 form_for 不能用了,form_tag 可以用。
示例代码如下:
# Entity
class Post
include Lotus::Entity
attributes :title, :body, :created_at, :updated_at
end
# Controller
def create
@post = Post.new(params)
@post.created_at = @post.updated_at = Time.now
PostRepository.create(@post)
redirect_to posts_path, notice: 'Post was successfully created.'
end
有兴趣用 Lotus 么?欢迎加入探讨。