在Rails中提交表单时调用在不同控制器中定义的方法

时间:2012-07-18 11:31:34

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个指定为= form_for [@driver,@driver_availability]的form_for标记。它将输入的数据存储在driver_availabilities模型中,并调用DriversController的create方法。 是否可以调用我在不同控制器中定义的某个方法,但是像往常一样继续在driver_availabilities模型中保存数据?

谢谢

1 个答案:

答案 0 :(得分:2)

[@driver, @driver_availability]会针对新对象调用driver_driver_availabilities(driver_id: @driver),针对现有驱动程序可用性调用driver_driver_availability(driver_id: @driver, id: @driver_availability)。因此,要么创建到另一个控制器的命名路由路由(请注意这些命名路由也用于索引,显示,更新和销毁),或者为表单标记提供url选项:

= form_for [@driver,@driver_availability], url: … # named route or routing hash

我会选择第二种选择。