Ruby on rails Rails集合\u选择默认选择
在Rails 4视图中,我有Ruby on rails Rails集合\u选择默认选择,ruby-on-rails,select,selected,collection-select,Ruby On Rails,Select,Selected,Collection Select,在Rails 4视图中,我有 <%= form_for @person do |f| %> <%= f.collection_select :country_id, Country.order(:name), :id, :name, include_blank: "Select your country" %> ... <% end %> ... 我希望在加载页面时将“选择您的国家”选为默认值。一种方法是使用javascript(在加载dom后选
<%= form_for @person do |f| %>
<%= f.collection_select :country_id, Country.order(:name), :id, :name, include_blank: "Select your country" %>
...
<% end %>
...
我希望在加载页面时将“选择您的国家”选为默认值。一种方法是使用javascript(在加载dom后选择它)。是否有一种更简单的方法,比如在集合中添加一个选项\u select
谢谢。根据,这是选项
参数中的提示符
选项:
collection_select(:post, :author_id, Author.find(:all),
:id, :name_with_initial,
{:prompt => 'Please select the author of this post'})
对于表单生成器上的collection\u select
,我们省略了第一个参数,因此在本例中:
f.collection_select :country_id, Country.order(:name), :id, :name, {prompt: 'Select your country'}
我已经100%确认这是在运行Rails 4.1.6的我自己的应用程序上运行的,其中提示符
和include\u blank
做同样的事情
其工作方式是Rails将空值的
作为生成的
中的第一项注入(这是因为HTML规范对于选择输入的文本输入没有类似的占位符)
可能失败的原因:
Rails没有使用selected
属性标记prompt选项,我怀疑一些浏览器可能会选择呈现自己的空白条目,而不是列表中的第一个条目
对于现有记录,如果Rails确定当前记录的country\u id
与列表中的某个元素匹配,它会将该元素标记为选中的。这是预期的行为,但如果你做任何不标准的事情,这可能是一种痛苦
如果您正被这些问题困扰,您可以选择手动构建表单(这里可能会使用来自\u collection\u for \u select
的方法options\u)或使用javascript进行构建。还有一个未记录的默认属性,您可以添加到
标记中,但它不在规范中,浏览器支持可能不完整,您仍然需要手动构建表单。感谢您为我搜索,但根据您的第一个答案,它不起作用(显然我已经在谷歌上搜索过了,还有include\u blank:“…”
,但是每当你刷新页面时,上次刷新之前选择的选项都会被选中)。@user2725109尝试这样写:
谢谢你的评论。尝试了你的格式(将include\u blank:选择你的国家/地区放在{}内),但它没有解决问题,在刷新后,选择了“刷新前的最后一个选项”。@user2725109:当页面刷新时,它是否未显示在“选择”框中loaded@SLD.非常感谢您的回复。我试过了,但不起作用。include\u blank:'Prompt text'
只作为选项
工作,而不是html\u选项
。尝试了所有不同的变化,但没有成功。