选择控制器和连接表的路由

时间:2012-05-10 20:55:32

标签: ruby-on-rails design-patterns jointable

我正在构建一个收藏夹功能。

例如:

class User < ActiveRecord::Base
  has_many :favorites
end

class Product < ActiveRecord::Base
  has_many :favorites
end

class Favorite < ActiveRecord::Base
  belongs_to :user
  belongs_to :product
end

方案

我有一个产品列表,我想在每个产品旁边添加一个[+] Add to favorites链接。

我的问题

  • 我是否将整个列表包装在表单标记中,以便我可以使用POST来某些控制器 - 或者我是否使用link_to_remote标记执行某些操作?
  • 我是否使用产品控制器的create操作,或者我应该使用收藏夹控制器 - 甚至是用户控制器(因为它是用户的最爱)?

正如您所看到的,我不确定将连接表的代码放在何处。谁“拥有”什么?我害怕使用不良反模式。

1 个答案:

答案 0 :(得分:1)

您也可以在路线中设置关联,例如

resources :products do
  resources :favorites
end

这将允许您从收藏夹控制器中创建收藏夹

比你可以用link_to_remote包装添加更多的收藏夹链接到你的收藏夹#create