Ruby on Rails - 参数返回nil结果

时间:2013-11-22 09:03:01

标签: ruby-on-rails date parameters

参数

"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"}

为什么给我一个零价值?

如果您需要更多内容,请告诉我

2 个答案:

答案 0 :(得分:2)

您应该使用params[:event][:day]代替params[:day]

答案 1 :(得分:1)

我至少看到三个问题。

  1. 您的参数可以通过params[:event][:day]访问,您可以在发布的参数列表中看到。
  2. 您发布的隐藏字段未设置params[:event][:day]参数。实际上,它没有做任何事情,因为它甚至没有被渲染(因为<%使用,而不是<%=
  3. 您尝试滥用此参数,在其上调用id(在@event = Event.new(date: date, id: date.id)行中)。即使您正确引用该参数,也会引发错误。