Ruby on rails 嵌套资源-没有路由匹配

Ruby on rails 嵌套资源-没有路由匹配,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我的Rails4应用程序中的嵌套资源有问题。我错过了什么 我可以很好地查看participations/new.html.erb表单,但当我提交表单时,它返回“没有路径匹配[POST]”/executions/1-ales/participations/new”错误 例如,当我尝试编辑参与时,此url:localhost:3000/executions/1-ales/participations/15/edit返回“ActionController::ParameterMissing in P

我的Rails4应用程序中的嵌套资源有问题。我错过了什么

  • 我可以很好地查看participations/new.html.erb表单,但当我提交表单时,它返回“没有路径匹配[POST]”/executions/1-ales/participations/new”错误

  • 例如,当我尝试编辑参与时,此url:localhost:3000/executions/1-ales/participations/15/edit返回“ActionController::ParameterMissing in ParticipationsController#edit”和“param not found:participation”

    • 编辑并销毁index.html.erb文件中的链接,导致错误:
    ActionController::UrlGenerationError in Participations#index
    没有路由匹配{:action=>“edit”,:controller=>“participations”,
    :检查id=>,
    id=>nil,:format=>nil}缺少必需的键:[:id]“

routes.rb 考试.rb
课堂考试:参与
结束
参与.rb
课堂参与
参与度\u controller.rb
类参与控制器
app/views/participations/new.html.erb

:hidden,:input_html=>{:value=>current_user.id}%>
app/views/participations/edit.html.erb

:hidden,:input_html=>{:value=>current_user.id}%>
app/views/participations/index.html.erb **导致应用程序出错的链接

<%= link_to 'Edit', edit_examination_participation_path(participation), :class => 'btn btn-small' %>
<%= link_to 'Delete', participation, method: :delete, data: { confirm: 'bla bla' }, :class => 'btn btn-small btn-danger' %>
“btn btn小”%>
“btn btn小btn危险”%>

创建参与:

app/views/participations/new.html.erb

替换

<%= simple_form_for @participation, as: :participation, url: new_examination_participation_path(@examination) do |f| %>
<%= simple_form_for @participation, as: :participation, url: edit_examination_participation_path(@examination) do |f| %>
<%= link_to 'Edit', edit_examination_participation_path(participation), :class => 'btn btn-small' %>
<%= link_to 'Delete', participation, method: :delete, data: { confirm: 'bla bla' }, :class => 'btn btn-small btn-danger' %>

“btn btn小”%>
“btn btn小btn危险”%>
注意:我强烈建议您阅读Rails指南中的相关内容。
您始终可以执行
rake routes
,并查看可用的路由列表。

当您发布有关路由的问题时,请确保添加rake路由的输出
<%= simple_form_for @participation, as: :participation, url: new_examination_participation_path(@examination) do |f| %>
    <%= f.input :user_id, :as => :hidden, :input_html => { :value => current_user.id } %>
    <%= f.input :examination_id, as: :hidden %>
    <%= f.input :language_preference, collection: ["English", "German"] %>
    <%= f.button :submit, "Register to Exam" %>
<% end %>
<%= simple_form_for @participation, as: :participation, url: edit_examination_participation_path(@examination) do |f| %>
    <%= f.input :user_id, :as => :hidden, :input_html => { :value => current_user.id } %>
    <%= f.input :examination_id, as: :hidden %>
    <%= f.input :language_preference, collection: ["English", "German"] %>
    <%= f.button :submit, "Register to Exam" %>
<% end %>
<%= link_to 'Edit', edit_examination_participation_path(participation), :class => 'btn btn-small' %>
<%= link_to 'Delete', participation, method: :delete, data: { confirm: 'bla bla' }, :class => 'btn btn-small btn-danger' %>
<%= simple_form_for @participation, as: :participation, url: new_examination_participation_path(@examination) do |f| %>
<%= simple_form_for @participation, as: :participation, url: examination_participations_path(@examination, @participation) do |f| %>
<%= simple_form_for @participation, as: :participation, url: edit_examination_participation_path(@examination) do |f| %>
<%= simple_form_for @participation, as: :participation, url: examination_participation_path(@examination, @participation) do |f| %>
<%= link_to 'Edit', edit_examination_participation_path(participation), :class => 'btn btn-small' %>
<%= link_to 'Delete', participation, method: :delete, data: { confirm: 'bla bla' }, :class => 'btn btn-small btn-danger' %>
<%= link_to 'Edit', edit_examination_participation_path(@examination, participation), :class => 'btn btn-small' %>
<%= link_to 'Delete', examination_participation_path(@examination, participation), method: :delete, data: { confirm: 'bla bla' }, :class => 'btn btn-small btn-danger' %>