我发现了使用助手来包含状态的问题。它在创建新记录时工作得很完美,但是如果我想编辑现有记录,我希望在下拉框中预先选择数据库中的状态。我不能用这个帮手让它工作。但是如果您创建一个简单的 state 表,它就可以工作。以下是对我有效的方法:
为选择框选项创建状态表
生成一个 State 模型文件和数据库表,其中只有 State _ code 和 State _ name (或者任何您想称呼它们的列)。
rails g model State state_code:string:uniq state_name:string --no-timestamps --no-test-framework.这将在 db/shift 文件夹中生成一个迁移文件。如果不需要 id 列,可以通过在 create _ table 块声明中插入 , id: false来编辑它。
# db/migrate/timestamp_create_states.rb
class CreateStates < ActiveRecord::Migration
def change
create_table :states, id: false do |t|
t.string :state_code, null: false
t.string :state_name
end
add_index :states, :state_code, unique: true
end
end