新手Rails 3 - select_tag - 数值

时间:2011-11-18 13:25:02

标签: ruby-on-rails ruby-on-rails-3

在一个表单中,我想要一个值为1到30的selectbox,并将值存储在db-column中。这有帮助吗?我看了select_tag,但没找到一个好的解决方案。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

当您需要一个填充了非数据库数据的下拉选择框时,请使用select_tag

erb:

<%= f.select "make_num", 1..30 %>

haml:

= f.select "make_num", 1..50

或(更好的MVC)
在您的控制器中创建my_range = 1..30

my_range = 1..30  

然后在你看来:

erb:

<%= f.select "make_num", my_range %>

haml:

= f.select "make_num", my_range

或(最佳MVC

使用clem的解决方案:)

答案 1 :(得分:1)

我通常在模型中放置可接受的值范围

# app/models/widget.rb
class Widget < ActiveRecord::Base
  RATING_VALUES = (1..10)
end

然后我可以在视图中引用它:

# app/views/widgets/_form.html.erb
<%= form_for @widget do |f|
  <fieldset>
    <%= f.label :rating %>
    <%= f.select :rating, Widget::RATING_VALUES %>
  </fieldset>

  <!-- etc -->
<% end %>