从Rails中的控制器函数填充选择框

时间:2009-12-19 08:07:24

标签: javascript ruby-on-rails ajax

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

<%= select_tag :foo %>

我正在寻找在控制器中编写一个函数,该函数将使用一些值填充此选择框。 为了做到这一点,我需要编写哪些代码?

使用observe_field:

调用该函数
<%= observe_field :foo, :url => { :action => :populate } %>

如果将值硬编码到函数中,则可以。

def populate
  # what goes here?
end

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试这样的事情......

在您的application_helper.rb中,输入以下内容:

$MEMBERROLE = ['Student', 'Coach', 'Staff', 'Administrator']

然后在您看来,您可以提供以下内容:

 <p>
   <%= f.label :role %><br />
   <%= f.select(:role, options_for_select($MEMBERROLE.collect{|x| [x, $MEMBERROLE.index(x)]}, @member.role)) %>
 </p>

假设您有一个类似于此的成员模型:

  create_table "members", :force => true do |t|
    t.string "name"
    t.integer "role"
  end

这是一种简单的方法。您也可以将角色作为一个单独的表格,但我认为这对您所寻找的内容来说太过分了......

答案 1 :(得分:0)

我认为你误解了observe_field的作用。它在字段更改时执行一些javascript。如果你能给我们一些关于你想做什么的更多细节,那就太好了。

例如,您是否尝试根据您在其他字段中选择的内容更改选择中的值?