我有一个添加功能+ View 。在某些情况下,用户可以指定执行某些操作并调用应向添加函数提交 id 的函数。 (有效)
现在我希望如果这个参数不为 nil,那么应该使用这个值预定义一个选择标签。
我试过这个:
<% if !params[:channel_id].nil? %>
<% :channel_id << params[:channel_id] %>
<% end %>
那是行不通的。
选择标签看起来像这样:
<%= f.collection_select :channel_id, @channels, :id, :channelname, {prompt: (t "channel.add.prompt")}, class: "form-control", :required => :true %>
有解决方案吗?
最佳答案
您可以将值添加到您的collection_select
:
<%= f.collection_select :channel_id, @channels, :id, :channelname,
{
prompt: t('channel.add.prompt'),
selected: params[:channel_id]
},
class: 'form-control', required: true %>
另一个选项——我更喜欢——是在你为表单初始化对象时设置这个值。这取决于您的 form_for
的样子,但它可能看起来像这样:
# in the controller
@model = Model.new(channel_id: params[:channel_id])
# in the view
<%= form_for @model do |f| %>
如果这样做,就不需要更改 collection_select
标签。
关于ruby-on-rails - Rails 将选择标签设置为预定义值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37049899/