nic*_*hvi 5 ruby-on-rails partials ruby-on-rails-3
这是我渲染部分的代码(正确生成了@parties集合,我测试过了):
<% @parties.each do |party| %>
<div class="item">
<%= render 'parties/party', :object => party %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这是部分代码:
<%= party.name %>
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
undefined method `name' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
我在我的智慧结束,有人请求帮助: - |
此外,这是控制器呈现包含部分视图的控制器的代码(控制器名为default_controller):
def index
@parties = Party.all
end
Run Code Online (Sandbox Code Playgroud)
这不是party_controller,这有什么后果吗?
Sam*_*ron 10
我尝试过类似下面的东西并且有效
<%= render :partial => 'party', :object => party %>
Run Code Online (Sandbox Code Playgroud)
我可以像访问一样party.name.局部变量以party此处的部分名称命名.
注意:我假设你的两个部分都是parties_controller.所以这应该工作.
更新: 这是我再次尝试过的
class PostsController < ApplicationController
#... ...
def index
@posts = Post.all
@comments = Comment.all #<---- Loading comments from PostsController
#... ...
end
end
Run Code Online (Sandbox Code Playgroud)
#views/posts/index.html.erb
<% @comments.each do |comment| %>
<%= render :partial=>"comments/comment", :object=>comment %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
#views/comments/_comment.html.erb
<%= comment.body %>
Run Code Online (Sandbox Code Playgroud)
它的工作:)
| 归档时间: |
|
| 查看次数: |
4038 次 |
| 最近记录: |