我对下拉列表中的值来自哪里有疑问:
我有一个迁移,它使用一些初始值设置原始表:
add_column :contracts, :signature_status_id, :integer
# lookup data
sig = SignatureStatus.new(:name => "Delivered")
sig.save!
sig = SignatureStatus.new(:name => "Signed")
sig.save!
我有一个名为signature_statuses的表,其中包含更新的值:
id, name
1, 'Delivered; awaiting signature'
2, 'Delivered; awaiting full execution'
3, 'Terms being negotiated'
4, 'Fully executed and filed'
我有一个表单,其中包含用于提取签名状态的代码:
<%= collection_select(:contract, :signature_status_id, @signature_statuses, :id, :name) %>
当我希望它来自数据库时,集合选择正在拉入“已签名”和“已交付”。我该如何做到这一点。
注意:我认为数据是手动编辑而不是迁移,但我不确定。我还搜索了“已签名”和“已发送”的代码,但它出现的唯一地方是迁移。
答案 0 :(得分:0)
我只是想知道如何在signature_statuses表中获取该值列表?您在查询开发数据库吗?您的应用程序是否在开发模式下运行database.yml文件是否正确设置为指向您的开发数据库?
您也可以发布填充@signature_statuses变量的控制器代码。
更多信息,我相信人们将能够提供帮助。
答案 1 :(得分:0)
嗯,这有点奇怪,但我怀疑如下:在你的name
模型中可能有一个名为signature_status
的方法,它覆盖了默认值,并返回yes
和no
。
答案 2 :(得分:0)
调试这个的关键是看看
@signature_statuses
正在控制器中设置。如果它从数据库中拉出来,那就是数据库中的内容。我想知道是否涉及多个数据库,您的迁移更新了开发数据库,但是您正在运行针对生产的查询(或类似的东西)。
答案 3 :(得分:0)
事实证明我需要运行“rake db”并修复它。