我有一个带有选择框的Rails Web应用程序:
<%= select_tag :foo %>
我正在寻找在控制器中编写一个函数,该函数将使用一些值填充此选择框。 为了做到这一点,我需要编写哪些代码?
使用observe_field:
调用该函数<%= observe_field :foo, :url => { :action => :populate } %>
如果将值硬编码到函数中,则可以。
def populate
# what goes here?
end
谢谢!
答案 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。如果你能给我们一些关于你想做什么的更多细节,那就太好了。
例如,您是否尝试根据您在其他字段中选择的内容更改选择中的值?