我有一个新对象的表单,我希望在保存对象之前包含一个在新对象控制器中调用方法的按钮。
<%= button_to 'do thing', do_thing_object_path(), remote:true %>
...需要括号中带有id的对象。如何在不实例化对象的情况下调用方法?
目标是一个新的&#39;只有当用户选择 - 用户点击按钮时才会创建嵌套对象的表单,该按钮调用父对象控制器中的方法,该方法实例化嵌套对象并触发一些javascript以显示部分为嵌套表格。在实际创建任何对象之前所有这一切。
我的路线包括:
resources :objects do
member do
get 'show_thing'
end
end
答案 0 :(得分:1)
你已经服用了,
member do
get 'show_thing'
end
这是member
路径。 member path
需要 id
。
取而代之的是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