Rails 3.1ルーティングエラー
-
25-10-2019 - |
質問
私は単に理解できないルーティングエラーがあります!誰かが非常に感謝される解決策を提案できるなら、それは私の頭を抱いています。
私はエラーを取得します:ルーティングエラーはルートなし一致しません
次のボタンから:
<p><%= link_to "Create from template", create_from_template_project_path %></p>
routes.rbで私は持っています:
resources :projects do
member do
get 'create_from_template'
end
end
クラスProjectScontrollerでは私が持っています:
def create_from_template
#@project = Project.find(params[:template_id])
#@project.clone
redirect_to projects_path
end
私が「レーキルート」をするときにも現れます
create_from_template_project GET /projects/:id/create_from_template(.:format) {:action=>"create_from_template", :controller=>"projects"}
なぜそれが機能していないのか誰か考えがありますか?
編集:実際には、「メンバー」ネストされたリソースルーティングルールを誤解しているかもしれません。私はプロジェクトを渡していませんでした。ボタンを変更しました
に
<p><%= link_to "Create from template", create_from_template_project_path(template_project) %></p>
そして今、それは機能します。助けてくれたみんなに感謝します。
解決
テンプレートアクションを作成するためにプロジェクトに合格する必要がない場合は、次のように変更ボタンを変更します。
<%= link_to "Create from template", create_from_template_projects_path %>の代わりに、ルートで
member do使用する必要があります
collection do
使用する場合 member do
routes.rbで、Prasvinが言及したように、link_toでプロジェクトを渡す必要があります
他のヒント
link_toと一緒にパスでプロジェクトを送信してみてください
所属していません StackOverflow