У меня есть следующий код в моем routes.rb файле:Рельсы маршрутизации - необязательные параметры не работают
get 'page/contact_us(/:year(/:month))'=>'page#contact_us', :as => 'contact_us'
Идея заключается в том, что ввод год и месяц в URL не являются обязательными. Но всякий раз, когда я пытаюсь перейти по адресу:
localhost:3000/page/contact_us
Я получаю сообщение об ошибке. Только когда я вхожу в год и месяц, я не получаю сообщение об ошибке. Например,
localhost:3000/page/contact_us/2014/11
работает!
Rails сообщает мне, что ошибка находится в файле contact_us.html.erb. Линия ошибка: функция
<%=contact_us(@month,@year).html_safe%>
contact_us (месяц, год) определяется в хелперов файле - page_helper.rb
Идея заключается в том, что 2 аргументы обычно передаются выше (в URL) , но иногда в url могут быть переданы 1 или никакие аргументы. Я получаю сообщение об ошибке, когда передано менее 2 аргументов.
Пожалуйста, помогите! Я использую рельсы 4.1.8 и Rubymine
'contact_us_path (@year)' работает для меня, а также 'contact_us_path' без аргументов. –
Если 'params [: month]' и 'params [: year]' не определены (и их не будет, если вы не передадите их в URL-адресе). Тогда что вы заселяете '@ month' и' @ year'? Что произойдет в вашем коде, если '@ month' и' @ year' равны нулю? – JTG
Спасибо. params [: month] и params [: year] предназначены для запросов GET. Например, что-то вроде: localhost: 3000/page/contact_us? Month = 10 & year = 2012 – raneshu