【发布时间】:2015-05-14 19:13:38
【问题描述】:
我有一个关于 Rails 4 中 collection_select 的小问题。
当我们在collection_select中调用一个表的所有元素
示例:
<%= f.collection_select :category_id, Category.all, :id, :name %>
是否违反了 MVC?
换句话说:如果我在产品视图中有一个 collection_select
在这个视图中它调用Category.all,对我来说,我们违反了 MVC 模式。因为Category.all 应该在模型中。
告诉我我是否正确。
【问题讨论】:
-
取决于你对 MVC 的定义,以及你对视图隔离的关心程度。确实,拥有动作实例变量更多违反,理想情况下,IMO-a 视图只能访问特定于视图的模型。几乎总是有取舍。
-
嗯,在什么情况下我可以谈违规?
-
如果它对你很重要,当然可以——但我不确定这是否重要。 “纯”MVC 框架很少见,但随着 Web 套接字和类似物的普及,它们变得越来越可行。
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 collection-select