Rails 3 アプリケーションでは、データ入力フォーム テーブルを含む「テーブル」パーシャルと、その下にテーブル データをクリアする別の小さなフォーム (ほとんどが非表示のフィールド) があります。パーシャルに含まれるテーブルに新しい列を追加するために、パーシャルの下に 3 番目のフォームがあります。ページは正常に読み込まれます。テーブルデータをクリアする小さなフォームが機能し、想定どおりにパーシャルを更新します。しかし、add-new-column フォームを送信すると、次のルーティング エラーが発生します。
ActionView::Template::Error (No route matches {:controller=>"outcome_results", :action=>"clear_table"}):
70: </table>
71: <%= submit_tag "Save" %>
72: <% end %>
73: <%= form_tag url_for(:controller => 'outcome_results', :action => 'clear_table'), :id => "clear_data_table_link", :remote => true do %>
74: <%= hidden_field_tag "subgroup_id", subgroup_id %>
75: <%= hidden_field_tag "outcome_id", @selected_outcome_object.id %>
76: <%= hidden_field_tag "timepoint_id", timepoint_id %>
app/views/outcome_results/_table.html.erb:73:in `_app_views_outcome_results__table_html_erb__204353865_18893424_435027370'
app/controllers/outcome_columns_controller.rb:36:in `block (3 levels) in create'
app/controllers/outcome_columns_controller.rb:35:in `block (2 levels) in create'
app/controllers/outcome_columns_controller.rb:33:in `create'
行 72 は、最初の (テーブル/データ エントリ) フォームの終了タグです。行 73 は、私の clear-table-data フォームのフォーム タグで、それ自体で正常に動作します。ルーティング エラーはありません。
私の routes.rb は非常に長いですが、次の行が含まれています。
match 'projects/:project_id/studies/:study_id/clear_table' => 'outcome_results#clear_table'
add-new-column フォームは次のようになります。
<div id="outcome_column_validation_message"></div>
<%= form_for @outcome_column, :action => :create, :remote => true, :id=>"outcome_columns_form" do |f| %>
<%= hidden_field_tag "outcome_id", !@selected_outcome_object.nil? ? @selected_outcome_object.id : nil %>
<%= hidden_field_tag "subgroup_id", !@selected_timepoint.nil? ? @selected_timepoint : 0 %>
<%= hidden_field_tag "timepoint_id", !@selected_subgroup.nil? ? @selected_subgroup : 0 %>
<div class="field">
Custom Column Title: <%= f.text_field :name %> Description: <%= f.text_field :description %> <%= f.submit "Add Custom Column" %>
<% end %>
「outcome_column」コントローラの「create」アクションのフォーマット セクションは次のようになります。
respond_to do |format|
format.js {
render :update do |page|
page.replace_html 'outcome_results_table', :partial => 'outcome_results/table'
page['outcome_columns_form'].reset
page.replace_html 'outcome_column_validation_message', ""
end
}
end
役立つ場合は、さらにコードを投稿できます...このルーティングエラーについて何か考えがある人はいますか?
前もって感謝します。