将实例和非实例变量传递给部分

时间:2012-01-12 15:48:38

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

我的 views / users 目录中有一部分 _approve.html.erb ,我想在 views / friendships / index中使用。 html.erb

部分在我的 views / users / show.html.erb 中使用实例变量正常工作。但是,当我从 views / friendships / index.html.erb

中调用它时,它似乎会中断

_approve.html.erb

<%= link_to "Approve", friend_approval_path(@user), :class => "btn primary", :remote => false %>

views / users / show.html.erb 在这里呈现正常:

<%= render 'approve' %>

views / friendships / index.html.erb 会在此处抛出错误:

<%= render :partial => 'users/approve', :locals => {:user => invite} %

这是错误:

No route matches {:controller=>"friendships", :action=>"approve"}

1 个答案:

答案 0 :(得分:2)

@user是一个实例变量 - 不是本地变量。

从友谊控制器创建@user实例变量,或从用户控制器传入本地user,或在部分中放置逻辑以在两者之间进行选择。