我在每个字段中创建了一个带有文本框的输入页面,它正在运行。
我使用以下代码更改了选择框中的一个字段:
<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
不会自动更改为其值。
答案 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)