【发布时间】:2017-04-18 18:24:30
【问题描述】:
我无法理解数据传递和提供给部分数据的一般方式。
例如:
我有一个控制器将一个实例变量传递给一个呈现部分的模板:
static_pages_controller.rb:
def home
@feed_items = current_user.feed
end
home.html.erb:
<%= render 'shared/feed' %>
_feed.html.erb:
<%= render @feed_items %>
现在,在我的 User 模型中是一个实例方法,它可以进入数据库以获取她的帖子:
user.rb:
def feed
Micropost.where("user_id = ?", id)
end
所以不知何故,因为Micropost.where(...) 返回了一组微帖子,Rails 是如何知道从_feed.html.erb 转到另一个部分,而<li> 是为定义微帖子的方式而定义的?
_micropost.html.erb:
<li id="micropost-<%= micropost.id %>">
<%= link_to adorable_avatar_for(micropost.user, size: 50), micropost.user %>
</li>
而且这只是一个约定,因为我真的在处理 Rails 知道给 micropost 变量的 microposts 集合吗?
【问题讨论】:
标签: ruby templates ruby-on-rails-5 partial