ruby-on-rails - Rails 将选择标签设置为预定义值

标签 ruby-on-rails ruby ruby-on-rails-4

我有一个添加功能+ 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/

相关文章:

ruby-on-rails - 未定义的方法 "apply_finder_options"

ruby-on-rails - 在 Ruby on Rails 3 中制作通用模型时出现问题

ruby - 如何过滤 HashMap 数组

php - 2011 Web 脚本语言和动态重新加载

ruby-on-rails - 使用 ActiveRecord 助手删除 VS 查找孤儿

php - 将一个非常大的 php 代码库迁移到 Rails 的理想方式是什么?

ruby - 获取给定特定键的哈希值数组

ruby-on-rails - 如何在不执行 Spring 的情况下在生产中运行 Ruby on Rails 控制台?

mysql - 禁用 MySQL 上的 Rails 4.2 小数秒支持

ruby-on-rails - 使用 current_page 在 HAML 中激活链接?