【发布时间】:2017-11-14 17:04:46
【问题描述】:
我试图在我的桌子上放一个link_to 以转到show 操作,但它将URL 设置为/admin/vulnerabilities.object_id 而不是/admin/vulnerabilities/object_id
我的索引视图是:
...
<% @vulnerabilities.each do |vulnerability| %>
<tr>
<td><%=link_to vulnerability.id, admin_vulnerabilities_path(vulnerability) %></td>
<td><%= vulnerability.type %></td>
<td><%=h truncate(vulnerability.description, :length => 80) %></td>
<td><%= vulnerability.published %></td>
<td><%= vulnerability.modified %></td>
<td><%= link_to vulnerability.href, vulnerability.href , target: :_blank %></td>
</tr>
<% end %>
...
我有一个show.html.erb 模板设置,我的show 操作如下:
def show
@vulnerabilities = Vulnerability.find(params[:id])
end
据我所见,这应该可以,但是当单击链接时,它只会重定向到索引页面,有效地刷新它并且根本不使用我的显示页面。
【问题讨论】:
-
如果您将
routes.rb文件的相关部分添加到您的问题中会有所帮助,但我推测问题在于admin_vulnerabilities_path(vulnerability)应该是admin_vulnerability_path(vulnerability)。 -
@jvillian 知道这一点,我认为您可能还想将显示视图中的变量重命名为单数
@vulnerability以避免混淆。仅供参考,从 Rails 5 开始,您可以使用rake routes -g vulnerability或rake routes -g vulnerabilities检查路由。 -
是的,明白了!我忘记了单数路径,仍然对单/复数用法感到头疼!
-
作为结束循环的答案发布。随时为未来的人们投票/接受。
标签: ruby-on-rails ruby-on-rails-5