避免mvc问题
问题描述:
我知道一个视图不应该有模型或控制器的任何知识,但我不确定如何避免它。避免mvc问题
问题是我想从控制器或模型中获取信息,然后我需要在我的视图中操作它。
在这里,代码
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不正确报告为什么?
答
在控制器,你可以这样做:
@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 %>
答
您可以先观看轨在这里投下多个表单插曲: -
http://railscasts.com/episodes/196-nested-model-form-part-1
而且是首先你应该确定模型在单一视图的形式访问信息的属性。
高清新 @survey = Survey.new 3.times做 问题= @ survey.questions.build 4.times {} question.answers.build结束 结束
唯一的问题,与这是article_id只是指的第一篇文章,我不看第二个和第三个 – Jseb 2013-02-17 18:01:28
不,它会给所有属于那些位置的文章。 – codeit 2013-02-17 18:23:46