我有一个简单的表单,我在其中设置选择列表的默认值,如下所示
f.select :post, (1..5).to_a, {:value => @author.posts }
如果在创建操作上验证失败,则此列表始终重置为1.
如果我设置了
,则在测试验证后的create方法中@author.posts = 5
然后它会将列表设置为5.但是它不会根据提交的内容设置列表。
试图设置
@author.posts = params[:post]
但默认为1,使用调试器验证了params [:post]的值已选中(例如5)。
是否有一些指针正在进行中我错过了?有什么建议吗?
答案 0 :(得分:0)
你的development.log会告诉你什么吗?也许Rails不允许将posts属性写入模型?
答案 1 :(得分:0)
您可能会意外地将字符串与数字进行比较。表单参数以字符串形式返回,而1..5.to_a生成一个整数数组。 @ author.posts也可能返回一个字符串。
试试这个:
f.select :post, (1..5).to_a, {:value => @author.posts.to_s }
无论如何,请检查您的数据类型。
另外,请检查以确保您的@ author.posts值确实已填写。