2013-11-22 3 views
0

параметрРубин на Rails - параметр дает нулевой результат обратно

"day" => "2013-11-21" 

контроллер

date = params[:day] # gives me a nil value back 
@event = Event.new(date: date, id: date.id) 

вид

... 
<% f.hidden_field :id, :value => :day %> 
... 

Вот параметры:

{"utf8"=>"✓", 
"authenticity_token"=>"lxKzvpGx8nmutI8X8sdZGNaKZ8w1kJEdF/B8ixtqpqA=", 
"event"=>{"title"=>"", 
"description"=>"", 
"day"=>"2013-11-21", 
"start(1i)"=>"2013", 
"start(2i)"=>"11", 
"start(3i)"=>"22", 
"start(4i)"=>"08", 
"start(5i)"=>"00", 
"end(1i)"=>"2013", 
"end(2i)"=>"11", 
"end(3i)"=>"22", 
"end(4i)"=>"08", 
"end(5i)"=>"00"}, 
"commit"=>"Create Event"} 

Почему он возвращает мне значение nil?

дайте мне знать, если вам нужно что-то более

+0

Как установить этот параметр –

+0

в виде:.? '<% f.hidden_field: o ID: значение =>: день%>' – ciaodarwin

+2

@ciaodarwin вы можете разместить ваш полный список параметров из консоли? – Mandeep

ответ

2

Вы должны использовать params[:event][:day] вместо params[:day]

+0

спасибо человеку !! ты лучший Я такой глупый: D – ciaodarwin

+1

@ciaodarwin Ага его хорошо! Вот почему они называются глупыми ошибками: D – Mandeep

1

Я вижу, по крайней мере, три проблемы.

  1. Ваш параметр доступен через params[:event][:day], как вы должны видеть в списке параметров, который вы опубликовали.
  2. Скрытое поле, которое вы разместили, не задает параметр params[:event][:day]. На самом деле, он ничего не делает, поскольку это даже не оказанные (из-за <% использования, вместо <%=.
  3. Вы пытаетесь злоупотребить этот параметр, называя id на нем (в @event = Event.new(date: date, id: date.id) линии). Даже если вы обратитесь к этому параметру должным образом, это вызовет ошибку
Смежные вопросы