2016-10-30 81 views
1

如果我有模型产品和模型类别。Rails添加链接以编辑另一个模型的属性

我在产品索引的表示出与像列产品:

<td><%= product.ID %></td> 
<td><%= product.NAME %></td> 
<td><%= product.category.NAME %></td> 

它显示像值:

1,沙拉,蔬菜

2,苹果,水果

我希望能够点击蔬菜或水果来编辑它们。

我想:

<td><%= link_to product.category.NAME, [:edit, product.category] %> 

该带我到一个页面

类别/ 1 /编辑

返回

找不到产品'ID'=

相反,它应该去

类别/编辑/ 1

在我的路线,我有:

match ':controller(/:action(/:ID))', :via => [:get, :post] 
resources :categories 

什么是这个使用正确的语法案件?

回答

1

要调用与修改后的路线类别控制器上编辑操作指定的控制器,操作和ID值,像这样:

<%= link_to product.category.NAME, { controller: :categories, action: :edit, ID: product.category.id } %> 

的的link_to助手将建立正确的路径,以匹配category/edit/1路径和路线到类别控制器而不是产品控制器的编辑操作(假设category.id == 1)

+0

谢谢,但我觉得我的解决方案仍然能回答你的问题 - 以什么方式呢? - 还有其他一些标准吗? – David

+0

根据我的示例中的值,您的解决方案显示1,/ categories/1/edit,vegetable和1,/ categories/2/edit,fruit。在任何情况下,如果我点击产品/ 1 /编辑没有任何反应。该链接必须显示类别名称,当我点击它将编辑该类别的页面。 – Catmal

+0

NAME是分类数据库表中的一列。 – Catmal

相关问题