ruby-on-rails-3 – Rails select_tag – 设置include_blank并选择默认值

select_tag :country_id,options_from_collection_for_select(Country.order('priority desc,name asc'),"id","name"),{ :prompt => 'Select a country',:include_blank => 'None' } %>

符合预期,除了:include_blank => ‘没有’.呈现空白选项.像这样:

<option value=""></option>

第二,使用select_tag.如何指定认值.例如,如果我需要选择框来选择特定国家/地区.我尝试添加:selected => Country.first无济于事:

<%= select_tag :country_id,{ :prompt => 'Select` a country',:include_blank => 'None',:selected => Country.first } %>

以上始终选择“选择国家/地区”.

为什么?

解决方法

空白价值

我不认为这对其他帖子有足够的重视:

select_tag上的include_blank不尊重传递给它的字符串.它只将它解释为真/假值.

要为具有特定字符串的select_tag设置空白值,您需要使用提示.

选定的价值

由于select_tag不属于某个对象(选择方式),因此您需要将所选值指定为选项的一部分.将所选值传递给select_tag的选项参数.

在您的情况下,您使用options_from_collection_for_select来帮助生成这些选项.此方法采用第四个参数指定应选择哪个选项.

options_from_collection_for_select( 
  Country.order('priority desc,:id,:name,Country.find_by_name('Canada')
)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...