1

Rails 新手在这里,编写一个示例应用程序,它具有以下三个模型和关系:

销售人员:

   class Salesperson < ActiveRecord::Base
       has_many :clients

客户:

   class Client < ActiveRecord::Base
       has_many :orders
       belongs_to: salesperson

订单:

class Order < ActiveRecord::Base
      belongs_to :client

在页面 clients/show.html.erb 我有一个部分呈现以下内容:

<table>
    <tr>
        <th>Name</th>
        <th>Total Orders</th>
        <th>Email</th>
        <th></th>
    </tr>

<% @salesperson.clients.each do |client| %>
    <tr>
        <td><%= client.full_name %></td>
        <td><%= client.orders.count %></td>
        <td><%= client.email %></td>
            <td><%= link_to 'View Client', client_path %></td>  
    </tr>

<% end %>   
</table>

资源都是嵌套的,页面似乎可以工作,除了一件事:

除了客户路径之外,一切都是动态的:客户名称、订单、电子邮件都显示给销售人员,但查看客户链接似乎总是指向 clients/:id 链接,其中 :id 是销售人员 ID,而不是客户 ID .

例如,因为销售人员 :id 是 1,所以所有客户端路径都将指向整个表的 clients/1。

如何使客户端链接路由像表的其余部分一样正确和动态?

4

1 回答 1

2

尝试

<td><%= link_to 'View Client', client_path(client) %></td>  

或更简单

<td><%= link_to 'View Client', client %></td>  

client_path需要一个参数是aClient或id。

于 2013-01-31T10:17:23.993 回答