2013-11-30 6 views
0

У меня есть следующее date_select, в котором отображаются три раскрывающихся меню, из которых я могу выбрать месяц, день и год.Как передать параметры день, месяц и год с помощью select_date?

<%=date_select("dateName", "dateMethod", :order => [:month, :day, :year])%> 

Я не знаю, как передать параметры на следующую страницу. Как я могу пройти месяц, день и год с submit_tag или link_to? Я смотрю страницу с именем generateDataForReport, и я хочу поймать параметры в другом представлении под тем же контроллером, что и showGeneratedReport.

+0

Вы можете разместить всю форму? Используете ли вы 'form_for'? Кнопка submit будет подчиняться тому, что когда-либо вызывается в теге 'form_for'. Как выглядит ваш контроллер? – Beartech

ответ

1

Если вы посмотрите на консоли, когда вы отправите форму, вы можете увидеть, как эти параметры называются:

"dateName"=>{"dateMethod(2i)"=>"12", "dateMethod(3i)"=>"1", "dateMethod(1i)"=>"2013" 

В контроллере, вы можете получить параметры, как это:

Год:

params[:dateName]['dateMethod(1i)'] 

месяц:

params[:dateName]['dateMethod(2i)'] 

дня:

params[:dateName]['dateMethod(3i)'] 

Вы можете назначить их на переменные в контроллере, чтобы сделать их легче иметь дело с:

day = params[:dateName]['dateMethod(3i)'] 
month = params[:dateName]['dateMethod(2i)'] 
year = params[:dateName]['dateMethod(1i)'] 

Если вы хотите передать этот Params к следующей странице, то сделайте это в переадресацией:

redirect_to report_path(@report, :d => day, :m => month, :y => year) 

Сейчас на следующей странице, ваш URL должен выглядеть следующим образом показывая ваш Params:

http://localhost:3000/reports/28?d=1&m=12&y=2013 

Теперь, чтобы отобразить их на странице вы это сделать:

<%= params[:d] %> 
    <%= params[:m] %> 
    <%= params[:y] %> 
Смежные вопросы