ruby-on-rails - 使用 Rails select_tag 传递多个值

标签 ruby-on-rails forms drop-down-menu

我正在使用 rails form_tag 助手,在表单中使用 select_tag 作为下拉列表。对于下拉列表中的给定选项,我需要能够传递 3 个值。是否可以使用 select_tag 执行此操作?

用于填充下拉列表的数据被格式化为哈希数组,下面是数组中给定项目的格式示例。

{ name: page['name'], page_id: page['id'], access_token: page['access_token'] }

所以在提交表单后,我想在我的 Controller 中获取这些值中的每一个作为参数。

使用 select_tag 的表单

<%= form_tag '/facebook_credentials' do %>
  <%= select_tag(:option, options_for_select(session['facebook_pages'].collect { |x| [x[:name] ] }) ) %>
  <%= submit_tag 'Save', class: 'button expand' %>
<% end %>

默认情况下,select_tag 只允许一个值,是否有解决此问题的方法或更有效的方法来实现我正在寻找的结果?

最佳答案

您可以通过获取您刚刚选择名称的哈希来找到“哈希的其他值”:

# view
select_tag(:option, options_for_select(session['facebook_pages'].collect { |x| [x[:name] ] })

# controller's action (where you submit your form)
selected_hash = session['facebook_pages'].find{ |x| x[:name] == params[:option] }

这段代码依赖于 select_tag 选项中的每个散列都有一个 uniq :name 的值

关于ruby-on-rails - 使用 Rails select_tag 传递多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29218334/

相关文章:

javascript - 使用ajax每X秒更新一次html页面

python - 提交按钮在 django 中不起作用

javascript - 使用javascript以 "dropdown"风格缓慢地显示隐藏的div

html - 下拉被推到右边?

ruby-on-rails - 为什么 Rails 的 Composite_primary_keys gem 不起作用?

mysql - 使用 Rails 迁移更改表信息

ruby-on-rails - Sass:处理每个样式表限制的 IE 4095 选择器

javascript - 按下 Enter 时将连字符添加到文本区域

javascript - 摆脱联系人表单中的灰色字体和文本框边框

c# - 如何设置下拉列表高度以及如何让下拉列表始终向下显示