没有路由匹配[patch]" / happy / node / 10003

时间:2016-10-25 02:28:40

标签: ruby-on-rails ruby forms routes

路由

def happy 
   @node = Node.find(params[:node_id])
      if @node.update_attributes(:node_status => "happy", 
                                 :location_id => params[:location_id], 
                                 :hostname => params[:hostname])
         redirect_to node_url
      end
end

节点控制器

<%= form_for(@node, url: happy_path(@node), method: :patch, do |f| %>
<%= f.label :location_id, "Location" %>
<%= collection_select :location_id, Location.order(:name), :id, :name, :prompt => "Select Location" %>
<%= f.submit "Save Changes" %>

view - form

readLines()

我正在尝试使用自定义操作更新节点表单。当我尝试这个时,它失败了。我将非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

在您使用put的路线中,所以您的方法也应该放在:

<%= form_for(@node, url: happy_path(@node), method: :put, do |f| %>

答案 1 :(得分:0)

如果您想继续使用patch,则需要添加PATCH路线:

patch '/happy/node/:node_id', to: 'nodes#happy', as: :happy