0

很抱歉一个简单的问题,但我有点困惑试图按照 ruby​​ on rails 教程书

我在第 10 章并且很困惑,是的,我为了学习目的而欺骗了我的版本所以我有一个名为 customercustomers_controller.rb 的控制器

def show
    @customer = Customer.find(params[:id])
    @posts = @customer.posts
end

然后我有以下文件夹 _post.html.erb

Welcome to a post

他从显示客户文件中调用的内容遵循 /view/customer/show.html.erb

<% provide(:title, @customer.name) %>
<aside class="customer_show_nav">
<h1><%= @customer.name %></h1>
<%= @customer.email %>
</aside>

<div class="events">
    <%= render @posts %>
</div>

但是当什么都不加载时,他的出现甚至没有欢迎来到一个帖子。我做错了什么?提前致谢。我正在关注教程http://ruby.railstutorial.org/chapters/user-microposts#top 10.22

4

2 回答 2

0

如果_post.html.erbview/customers

你这样做view/customers/show.html.erb

<%= render 'controller_where_post_lives/post' %>这将寻找customers/_post.html.erb

有时,您还需要=使用<%= %>rails 3

另外,show 用于显示一项,index 用于显示所有项目。

所以渲染你会做

<%= render :partial => "post", :collection => @posts %>

编辑:

当你调用 render 时,你给它视图,这里没有对象。除非像上面那样传递一个集合。

http://guides.rubyonrails.org/layouts_and_rendering.html

此外,如果您只想渲染文本,您可以这样做render :text => "OK"

于 2012-07-19T21:34:00.213 回答
0

寻找部分解释。

于 2012-07-20T00:25:02.520 回答