Ruby on rails 如何将Application.html.erb上的链接添加到其他视图?

Ruby on rails 如何将Application.html.erb上的链接添加到其他视图?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个配置文件scaffold(以及使用designe创建的用户),每个用户都有一个配置文件,并且希望显示指向来自my application.html.erb的单个用户配置文件的链接 问题是,这段代码在/views/profiles/index.html.erb中工作,但在/layouts/application.html.erb中不工作 <td><%= link_to 'Show', profile %></td> <td><%= li

我有一个配置文件scaffold(以及使用designe创建的用户),每个用户都有一个配置文件,并且希望显示指向来自my application.html.erb的单个用户配置文件的链接

问题是,这段代码在/views/profiles/index.html.erb中工作,但在/layouts/application.html.erb中不工作

<td><%= link_to 'Show', profile %></td>
<td><%= link_to 'Edit', edit_profile_path(profile) %></td>


我缺少什么?

在应用程序布局中,
profile
变量并不总是设置好的。在profiles#index操作中,我猜您的视图中有这样的代码:
@profiles.each do | profile |

这就是获取一组概要文件并对其进行迭代,将每个概要文件对象传递给块,在本例中,块就是渲染链接

在您正在描述的情况下,如果您想从任何页面显示指向当前用户配置文件的链接,首先需要查看是否有当前用户登录,然后对该当前用户调用profile方法。因此:

<% if current_user %>
  <%= link_to 'Edit Profile', edit_profile_path(current_user.profile) %>
<% end %>

更一般地说,在使用需要参数的路径帮助程序的任何情况下,都必须确保传递的是已定义的变量