javascript - 从 Controller 函数(Ruby on Rails)向选择框添加值

标签 javascript ruby-on-rails ruby ajax model-view-controller

我有一个带有选择框的 Rails 网络应用程序:

<%= select_tag :foo %>

我想在 Controller 中编写一个函数,用一些值填充这个选择框。我需要编写什么代码才能做到这一点?

如果将值硬编码到函数中就没问题。

def populate
  # what goes here?
end

最佳答案

看看options_for_select .它为您要显示的内容构建 html。

  options_for_select([["Dollar", "$"], ["Kroner", "DKK"]])
    <option value="$">Dollar</option>\n<option value="DKK">Kroner</option>

  options_for_select([ "VISA", "MasterCard" ], "MasterCard")
    <option>VISA</option>\n<option selected="selected">MasterCard</option>

  options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
    <option value="$20">Basic</option>\n<option value="$40" selected="selected">Plus</option>

  options_for_select([ "VISA", "MasterCard", "Discover" ], ["VISA", "Discover"])
    <option selected="selected">VISA</option>\n<option>MasterCard</option>\n<option selected="selected">Discover</option>

您可以像这样将此函数的结果传递给 select_tag:

  <%= select_tag 'company_id', options_for_select(@current_user.active_companies.map { |c| [c.name, c.id] }) %>

关于javascript - 从 Controller 函数(Ruby on Rails)向选择框添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1934026/

相关文章:

ruby-on-rails - rails : has_many through association - did I get this right?

ruby-on-rails - 将字符串转换为特定的日期时间格式?

javascript - jQuery .live ('click' ) 只绑定(bind)到页面上的第一个元素

javascript - AJAX 中 HTTP 对象的更简洁语法?

javascript - 保存一个这个。引用

ruby-on-rails - Eager Loading with "has many through"—— 我需要 Arel 吗?

ruby - 使用 nginx 的乘客安装失败

java - jQuery timepicker 插件不适用于 struts2-jquery

ruby-on-rails - `def self.myMethod` 和 `def myMethod` 之间有什么区别吗?

ruby-on-rails - 将 Amazon SES 与 Rails ActionMailer 结合使用