Rails选择帮助 - 设置默认值?

时间:2011-06-25 20:56:16

标签: ruby-on-rails html-select

Rails 2.3.11

读了this answer,但这对我不起作用。

我希望此选择框的默认选项是通过网址传递的event_id

f.select :event_id, @events, :selected => url_args["event_id"]

示例@events[["SC 2 Tournament", 195], ["Obstacle Course", 196], ["Mortal Combat", 197]]

以下也不起作用:

  • 将“.to_i”添加到“url_args [”event_id“
  • 使用options_for_select(@events,url_args [“event_id”]

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您使用collection_select帮助器,这会容易得多:

f.collection_select :event_id, @events, :id, :name

然后选择默认选项(并在页面加载中选择),您可以简单地将其分配给控制器中表单所用的任何对象。比如这样:

def new
   @events = Event.all
   @thing = Thing.new(:event => @events.first)
end

我不确定你的url_args来自哪里,但我猜它可能来自网址中的一个参数,在这种情况下你可以这样做:

Thing.new(:event_id => params[:event_id])

最后一件事 - collection_select将无法与@events一起使用,因为您正在使用嵌套数组,因为它需要一个可以调用的对象数组idname开启,以便检索值并显示选项的文本。要解决此问题,只需使用其中一个ActiveRecord查找器(例如@eventsEvent.all)重新定义控制器中的Event.find(..)

有意义吗?