我有一个表单,我使用表单中的hidden_field将对象作为参数传递。
<%= hidden_field_tag :activity, @activity %>
在我的控制器show方法中,我在变量
中停止params内容@activity = params[:activity]
在我看来,我可以访问它。下面我使用了debug:
--- 'Activity:MouQj8XFEZ {"activityDescription"=>"Swimming in a pool", "activityName"=>"name a",
"activityType"=>"swimming", "address"=>"022222 Pawson''s Road, Croydon, England,
United Kingdom, ddd 2QD", "approvalStatus"=>false, "coordinates"=>#<Parse::GeoPoint:0x007f82dbace828
@longitude=-0.09898502194827019, @latitude=51.3919513918931>
所以我知道变量中有一些东西。现在当我尝试这样访问它时:
Activity Name - <%= @activity["activityName"] %>
Activity Type - <%= @activity["activityType"] %>
Description - <%= @activity["activityDescription"] %>
我收到了字符串:
Activity Name - activityName
Activity Type - activityType
Description - activityDescription
我之前从未遇到过这种行为。
我错过了什么吗?
会感激一些帮助。
感谢您的时间。
答案 0 :(得分:0)
您应该考虑使用多个hidden_filed_tag
:
<%= hidden_field_tag :activity_name, @activity.activityName %>
<%= hidden_field_tag :activity_type, @activity.activityType %>
<%= hidden_field_tag :activity_description, @activity.activityDescription %>
然后在控制器使用中:params["activityName"]
,params["activityType"]
和params["activityDescription"]
来访问每个。
实际上,您要做的是在HTML上隐藏字段中创建一个对象:
<%= hidden_field_tag :activity, @activity %>
注意:@activity
是一个对象,这就是为什么你得到那个字符串而不是你预期的params
的原因。