link_to如何在rails中运行?

时间:2016-04-06 16:11:06

标签: ruby-on-rails ruby hyperlink

我是Ruby on Rails的初学者,并遵循Michael Hartl的导轨教程。在第2章中,我在使用link_to的部分中遇到了以下代码。当我们没有明确写出任何URL时,link_to如何知道哪个link_to指向?

<h1>Listing users</h1>
    <table>
    <tr>
    <th>Name</th>
    <th>Email</th>
    <th></th>
    <th></th>
    <th></th>
    </tr>
    <% @users.each do |user| %>
    <tr>
    <td><%= user.name %></td>
    <td><%= user.email %></td>
    <td><%= link_to 'Show', user %></td>
    <td><%= link_to 'Edit', edit_user_path(user) %></td>
    <td><%= link_to 'Destroy', user, confirm: 'Are you sure?',
    method: :delete %></td>
    </tr>
    <% end %>
    </table>
    <br />
    <%= link_to 'New User', new_user_path %>

谢谢大家。不知怎的,我无法发表评论,因为JavaScript无法加载。感谢amalrik maia提供链接。

解决方案: http://guides.rubyonrails.org/routing.html

2.3路径和URL助手

创建资源丰富的路由还会向应用程序中的控制器公开许多帮助程序。

就资源而言:照片:

photos_path返回/照片

new_photo_path返回/ photos / new

edit_photo_path(:id)返回/ photos /:id / edit(例如,edit_photo_path(10)返回/照片/ 10 /编辑)

photo_path(:id)返回/ photos /:id(例如,photo_path(10)返回/ photos / 10)

这些助手中的每一个都有一个相应的_url助手(例如photos_url),它返回前缀为当前主机,端口和路径前缀的相同路径。

2 个答案:

答案 0 :(得分:4)

您遇到语法错误。这样:

<%= link to 'New User', new user path %>

应该是:

<%= link_to 'New User', new_user_path %>

路径是铁路&#39;帮手。&#39;从这里开始:http://guides.rubyonrails.org/routing.html

它们基本上是指向特定网址的快捷方式。这些网址在routes.rb文件中定义。

答案 1 :(得分:1)

<h1>Listing users</h1>
<table>
<tr>
<th>Name</th>
<th>Email</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
<td><%= link_to 'Show', user %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Destroy', user, confirm: 'Are you sure?',
method: :delete %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New User', new_user_path %>

link_to对路径或网址一无所知。 这些URL由Rails的路由助手生成,如:

  • edit_user_path()
  • new_user_path

要查看路线的完整列表,请转到您的终端并输入:

bundle exec rake routes

有关详细信息,请参阅routing documentation