"Clients"という名前の現在のコントローラーで "新規"アクションにリンクしているボタンに問題があります。Rails上のルートを使ってRails上でリンクを生成する方法は?
それはRailsのルーティングエラーを表示するクリック:
No route matches [POST] "clients/new"
これは、私はそれがエラーを生成し使用しているコードです:
<%= button_to("New Client", new_client_path, :class => "btn btn-lg btn-primary pull-right add-button") %>
私はclients_path
へのパスを変更した場合は、同様にこれは:
<%= button_to("New Client", clients_path, :class => "btn btn-lg btn-primary pull-right add-button") %>
次のエラーが表示されます。
Unknown action. The action 'create' could not be found for ClientsController
コントローラのアクション新しく作成:
def new
@client = Client.new
end
def create
@client = Client.new(client_params)
if @client.save
flash[:notice] = "Client added succesfully."
redirect_to client_path(@client)
else
render 'new'
end
end
をroutes.rbをファイルには以下が含まれています。今
Rails.application.routes.draw do
get 'clients/index'
get 'clients/show'
get 'clients/new'
get 'clients/edit'
get 'clients/delete'
resources :clients
end
clients
は、私が作成している唯一の資源です。 RESTfulなルートを使って簡単にリンクを作成するには、何が欠けていますか?
これは私の約束を解決しましたが、 '<%= button_to(" New Client "、clients_path、{method::get}、{:class =>" btn btn-lg btn-primaryプル右私は 'clients_path'から' new_client_path'へのルートを修正しなければなりません。引数の数が無効であるため、同じ中括弧の中のメソッドとクラスを修正する必要がありました。これは、<%= button_to( "New Client"、new_client_path、{method::get、class: 'btn btn-lg btn-primaryプル右追加ボタン'})%> 'のように動作しました。回答を編集して回答としてマークしてください。 –
@JorgeCuevas偉大なフィードバックと、私に知らせてくれてありがとう!私は答えを更新し、 'button_to'の2つのハッシュについてもう少し説明を加えました。 'new_client_path'の問題はコピー/ペーストエラーであり、ハッシュオプションの問題はドキュメントの誤読でした。それらは今すぐ選別され、あなたが確認する準備ができています。ありがとう! –
すべてこれはうまくいけば、これは将来同様の問題を持つ他の人に役立つと思われる。あなたの助けを借りてくれたマイケルに感謝します。 –