在rails中访问自定义路由

时间:2014-06-12 19:28:15

标签: ruby-on-rails

我有一个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

1 个答案:

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