我是rails的新手,我觉得这个问题应该有一个简单的答案,但我无法理解。
在rails中我有两个表USERS和INFOS它们有多对多的关系,并且有第三个表INFOS_USERS但它没有该模型。我的问题是我想从Info视图添加到这个关联表,但我没有方法可以在控制器中调用!
我应该创建一个新的模型和控制器吗? 是否可以向控制器添加自定义方法?
由于
编辑:我可以从控制器写入表但问题是我没有任何控制器用于关联表,所以我没有任何方法可以从视图中调用。
答案 0 :(得分:2)
是的,您可以向控制器添加自定义方法(操作)
您的路线可能如下:
resources :users do
members do
get 'infos' # => /users/:id/infos
post 'add_info' # => /users/:id/infos/add_info
end
end
在这种情况下,使用嵌套路由可能是有意义的,这意味着您将拥有一个不同的控制器来管理这些信息' - 检查导轨指南http://guides.rubyonrails.org/routing.html#nested-resources
答案 1 :(得分:0)
用于将@user
添加到@info
:
@info.users << @user
如果您需要从关联中创建新的User
:
@info.users.build
并且您不需要任何额外的Controller
或Model