Pregunta

En una aplicación Rails 3, tengo una "mesa" parcial que contiene una tabla formulario de entrada de datos, además de una forma más pequeña separada (campos mayoría ocultos) debajo de ella para borrar los datos de la tabla. Tengo una tercera forma parcial por debajo de la de añadir una nueva columna a la tabla contenida en el parcial. La multa carga la página. El pequeño formulario para borrar los datos de tabla funciona, y refresca el parcial, ya que se supone que es. Pero, cuando envíe el formulario add-new-columna, me sale este error de encaminamiento:

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'

Línea 72 es la etiqueta de final de la primera forma (tabla / entrada de datos). La línea 73 es la etiqueta de formulario para mi forma de tabla de datos transparente que funciona bien por sí mismo -. No hay errores de enrutamiento no

Mi routes.rb es una locura largo, pero contiene esta línea:

match 'projects/:project_id/studies/:study_id/clear_table' => 'outcome_results#clear_table'

La forma de complemento de nueva columna es similar al siguiente:

<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 %>

y la sección de formato de la acción "crear" en los "outcome_column" miradas controlador de esta manera:

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

Publicación de más código si ayudaría ... Alguien tiene alguna idea acerca de este error de enrutamiento?

Gracias de antemano.

¿Fue útil?

Solución

La ruta tomaría dos argumentos: a project_id y una study_id. Esto no coincide con la ruta ya que no han pasado por estos dos parámetros a la url_for en su form_tag.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top