Ruby on rails 在rails中使用选项\u for\u select helper时出现问题

Ruby on rails 在rails中使用选项\u for\u select helper时出现问题,ruby-on-rails,ruby,ruby-on-rails-4,helpers,form-helpers,Ruby On Rails,Ruby,Ruby On Rails 4,Helpers,Form Helpers,我试图从选择框中获取一个值,以便将该值传递给控制器,但经过多次尝试后,我最终没有找到解决方案 我有这个: <div class="field"> <%= f.label :activityType %><br> <%= select_tag(:activityType, options_for_select([ ["Cycling"

我试图从选择框中获取一个值,以便将该值传递给控制器,但经过多次尝试后,我最终没有找到解决方案

我有这个:

<div class="field">
    <%= f.label :activityType %><br>
    <%= select_tag(:activityType, options_for_select([
                                                      ["Cycling", "Cycling"], 
                                                      ["Running", "Running"],                     
                                                      ["Swimming", "Swimming"], 
                                                      ["Gymn", "Gymn"]
                                                     ])) %>
</div>


我做错了什么?在文档中,它们也是这样做的

问题在于,我对presence=true的验证表明该字段为空


谢谢

您使用的是
f.label
,因此您可能也想使用
f.select
而不是
select\u tag
。它们之间的主要区别在于

select_tag(:activityType, options_for_select([[]]) )
准确地给出了
activityType
param名称,因此可以通过
params[:activityType]
在控制器中访问它,而:

f.select(:activityType, options_for_select([[]]) )
给出
参数[:object\u name][:activityType]
。因此,如果您通过
params[:object\u name]
创建对象,
activityType
为空


注意我使用的是
:object\u name
,因为我不知道您的表单对象名。

它可以工作!谢谢@blemlump!一个问题,我在下面有两个“div”:

你能解释一下为什么这与我想要的不同吗?这很有效。感谢您拥有类似于
@activity=activity.last的功能。然后在视图中:
form_for(@activity)do|f|;f、 选择:放置标识;结束(@activity)do | f |的
表格|;选择标签“活动[状态标识]”;结束或
表单标签。。。做选择标签“活动[状态标识]”;结束
都是等价的。使用
f.select
,则
f
会在字段名称中添加额外的上下文(对象名称),以便
f.select:state\u id
成为
活动[state\u id]
。谢谢!来自葡萄牙的问候:D