我知道视图不应该对模型或控制器有任何了解,但我不确定如何避免它。
问题是我想在我需要在我的视图中操作它之前从控制器或模型中获取信息。
这里是代码
Model
USER LOCATION ARTICLE
id user_id title
first article_id ...
last
...
关系
user has many locations
article has many locations
location belongs to user
location belongs to article
控制器
@userlocation = @user.locations
查看
<% @userlocation.each do |event| %>
...
<% evTitle = Article.find_by_id(event.article_id) %>
<%= evTitle.title %>
<% end %>
显然,不是最好不确定如何在控制器中进行查询,而evTitle没有正确报告原因?
答案 0 :(得分:1)
在控制器中你可以这样做:
@userlocations = @user.locations
@locations_articles = Article.find_all_by_id(@userlocations.map(&:article_id).uniq)
然后您可以在视图中使用@locations_articles
。避免在视图中使用db queries
。
<% @locations_articles.each do |article| %>
<%= article.title %>
<% end %>
答案 1 :(得分:1)
您可以先在这里观看导演多曲目剧集: -
http://railscasts.com/episodes/196-nested-model-form-part-1
并且首先应该在模型中定义一个属性,以便以单一视图形式访问信息。
def new @survey = Survey.new 3次 question = @ survey.questions.build 4.times {question.answers.build} 结束 端