2016-10-25 12 views
-1

経路

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

ノードコントローラ

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" %> 

Iノードを更新しようとしてい私はあなたの助けに非常に感謝します。Noルートが一致しない[パッチ]「/幸せな/ノード/ 10003

あなたのルートで

答えて

0

あなたはPUTを使用しているので、あなたの方法にも配置する必要があります:

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

私は両方にputを組み込もうとしましたが、フォームは提出しません。 – nordic

+0

提出時にログには何が表示されますか?そして、私はあなたになぜこの部分が必要なのか疑問に思っていました。 'url:happy_path(@ node)'。 – araratan

+0

NodesController#happyのテンプレートが見つかりません。レンダリングヘッド:no_content – nordic

0

をあなたはPATCHを引き続き使用したい場合は、patchルートを追加する必要があります。

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

私はルートにパッチを追加し、フォームにメソッドパッチを残しますか? – nordic

+0

@nordicはい、それはうまくいくはずです – pdoherty926

+0

ルートとフォームにパッチを追加しました。 – nordic

関連する問題