Ruby on Rails 3:在输入页面上选择

时间:2011-08-22 04:06:13

标签: ruby-on-rails-3

我在每个字段中创建了一个带有文本框的输入页面,它正在运行。

我使用以下代码更改了选择框中的一个字段:

<div class="field">
    <%= f.label :position %><br />
    <%= select_tag "position", options_for_select(%w{ mainpost bannerpost2 minipost1 minipost2 minipost3 }) %> 
</div>

当我修改新帖子时,我将select_tag值更改为bannerpost2,然后我更新了帖子,但position的字段不会更改为{{1 }}


另外,当我编辑帖子时,bannerpost2不会自动更改为其值。

1 个答案:

答案 0 :(得分:1)

  • 您需要使用f.select而不是select_tag,因为rails会自动将表名附加到每个ID,如果您的表是“帖子”,则f.select将为“post_position”,但是select_tag只是“位置”,因此数据不会存储在db。

  • 对于db中保存的先前值,应将其作为arg传递给options_for_select

如果您的表格名称为“Posts”,请传递@post.position

f.select :position, 
   options_for_select(%w{ mainpost bannerpost2 minipost1 minipost2 minipost3 },
   @post.position)