У меня есть код ниже в моем файле route.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
Идея заключается в том, что выше (в URL) обычно передаются 2 аргумента, но иногда в URL может передаваться 1 аргумент или вообще не передаваться. Я получаю сообщение об ошибке, когда передается менее двух аргументов.
Пожалуйста помоги! Я использую рельсы 4.1.8 и Rubymine.
contact_us_path(@year)
у меня работает, как иcontact_us_path
без аргументов. - person Victor Moroz   schedule 20.11.2014params[:month]
иparams[:year]
не определены (и их не будет, если вы не передадите их в URL-адресе). Тогда чем вы заполняете@month
и@year
? Что происходит в вашем коде, если@month
и@year
равны нулю? - person JTG   schedule 20.11.2014