0

ページを更新すると、次のエラーメッセージが表示されます。

ActionController::RoutingError (No route matches {:action=>"value", :controller=>"round"}):
  app/views/surveys/survey.html.erb:28:in `block in _app_views_surveys_survey_html_erb___3955880096442191391_70175035205180'
  app/views/surveys/survey.html.erb:22:in `_app_views_surveys_survey_html_erb___3955880096442191391_70175035205180'
  app/controllers/surveys_controller.rb:16:in `block (2 levels) in survey'
  app/controllers/surveys_controller.rb:14:in `survey'    
  Rendered /Users/pitosalas/.rvm/gems/ruby-1.9.3-p194@repeatsurvey/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.5ms)

私はこれに非常に混乱しています。program_participant_round_value_pathへの参照が原因で、そのルートが欠落しているのはなぜですか?

これが私のルートファイルです:

root to: 'programs#index'
  resources :programs do
    resources :participants do
      get 'survey' => 'surveys#survey'
    end
    resources :questions
    resources :rounds
    member do
      get 'report' => 'reports#report'
    end
  end
  resources :program do
    resources :participant do
      resources :round do
        put :value
      end
    end
  end

そして、これが関連するレーキルートラインです:

program_participant_round_value PUT    /program/:program_id/participant/:participant_id/round/:round_id/value(.:format) round#value

コントローラアクションround#valueがあります。

ビューの関連部分は次のとおりです。

<%= content_tag :table do %>
  <%= content_tag :thead do %>
    <% 5.times do |q| %>
      <%= content_tag :th, "1" %>
    <% end %>
  <% end %>
  <% form_tag program_participant_round_value_path do %>
    <%= content_tag :tbody do %>
      <%= render partial: 'surveys/value', collection: @values  %>
    <% end %>
    <%= submit_tag "Save" %>
  <% end %>
<% end %>

ありがとう!

4

1 に答える 1

1

あなたのprogram_participant_round_valueルートはいくつかのパラメータを期待しています:

  • :program_id
  • :participant_id
  • :round_id

program_participant_round_value_pathヘルパーを呼び出すときに、これらのパラメーターの値を指定する必要があります。

program_participant_round_value_path(program_id: @program, participant_id: @participant, round_id: @round)

もちろん、変数名などは、コントローラーでの定義方法によって若干異なる場合があります。

于 2012-11-08T13:50:28.000 に答える