Rails,通过向控制器添加自定义方法将数据添加到关联表

时间:2016-01-23 17:35:31

标签: ruby-on-rails ruby

我是rails的新手,我觉得这个问题应该有一个简单的答案,但我无法理解。

在rails中我有两个表USERS和INFOS它们有多对多的关系,并且有第三个表INFOS_USERS但它没有该模型。

我的问题是我想从Info视图添加到这个关联表,但我没有方法可以在控制器中调用!

我应该创建一个新的模型和控制器吗? 是否可以向控制器添加自定义方法?

由于

编辑:我可以从控制器写入表但问题是我没有任何控制器用于关联表,所以我没有任何方法可以从视图中调用。

2 个答案:

答案 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

并且您不需要任何额外的ControllerModel