渲染轨道视图

时间:2012-07-19 21:30:45

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

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

我在第10章并且感到困惑,是的,我为了学习目的而嘲笑我的版本 所以我有一个名为customer的控制器 customers_controller.rb

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

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

Welcome to a post

他从show客户档案中调出的内容已经跟​​随 /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

进行操作

2 个答案:

答案 0 :(得分:0)

如果_post.html.erb位于view/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 %>

修改

当您调用渲染时,您可以为其提供视图,此处没有对象。除非像上面那样传递集合。

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

此外,如果您只想渲染文字,可以执行render :text => "OK"

答案 1 :(得分:0)

寻找partials解释。