在未实例化对象时使用控制器方法

时间:2017-05-31 07:45:44

标签: ruby-on-rails

我有一个新对象的表单,我希望在保存对象之前包含一个在新对象控制器中调用方法的按钮。

<%= button_to 'do thing', do_thing_object_path(), remote:true %>

...需要括号中带有id的对象。如何在不实例化对象的情况下调用方法?

目标是一个新的&#39;只有当用户选择 - 用户点击按钮时才会创建嵌套对象的表单,该按钮调用父对象控制器中的方法,该方法实例化嵌套对象并触发一些javascript以显示部分为嵌套表格。在实际创建任何对象之前所有这一切。

我的路线包括:

resources :objects do
    member do
      get 'show_thing'
    end
  end

2 个答案:

答案 0 :(得分:1)

你已经服用了,

   member do
         get 'show_thing'
   end

这是member路径。 member path需要 id

Here is the reference of it

取而代之的是collection路径。 collection path不需要id

resources :objects do
  collection do
    get 'do_thing'
  end
end

do_thing_objects_url将是url形成的

<%= button_to 'do thing', do_thing_objects_path(), remote:true %>

答案 1 :(得分:0)

链接将如下所示:

content

控制器操作将是

<%= link_to 'do thing', do_thing_object_path(id: object.id), remote: true %>

创建一个文件some_action.js.erb

def some_action
  @object = SomeClass.new
end