我有一个simple_form_for触发自定义路由而不是传统的更新方法,我收到了这个错误。
没有路线匹配[PATCH]“/ ft_update”)
我不明白这个“/”来自哪里。任何人都可以帮助我吗?
这是我对simple_form_for
的声明<%= simple_form_for @time,:url=>{:action=>"ft_update", :controller=> "experiencetables"},
remote: true do |f| %>
我的路线文件的一部分看起来像这样
resources :experiencetables do
member do
patch :vol_update, :formats => "js"
patch :ft_update, :formats => "js"
patch :pt_update, :formats => "js"
patch :employ_update, :formats => "js"
end
end
我的experiencetables_controller.rb文件看起来像
def ft_update
@user = current_user
@exp_vol = Experiencetable.find_by(:user_id => @user.user_id,:full_time => true)
@exp_vol.update_attributes(work_params)
respond_to do |f|
f.js
end
end
答案 0 :(得分:1)
正如@DaveNewton在评论中所建议的那样,您可以直接使用路径助手。
查看已定义的路由,ft_update_experiencetable_path
将路由到ExperiencetablesController's
名为ft_update
的操作。你可以直接做:
<%= simple_form_for @time,:url => ft_update_experiencetable_path(@time),
remote: true do |f| %>