Ruby on rails 在Rails 3.1中,如何为具有“属于”关联的表单创建选择列表?
要点如下: 以下是我拥有的模型:Ruby on rails 在Rails 3.1中,如何为具有“属于”关联的表单创建选择列表?,ruby-on-rails,ruby,forms,activerecord,haml,Ruby On Rails,Ruby,Forms,Activerecord,Haml,要点如下: 以下是我拥有的模型: class Character < ActiveRecord::Base has_many :weapons end class Weapon < ActiveRecord::Base belongs_to :character end 但我一直在犯这样的错误: undefined method `character_id' for #<Weapon:0x007f9033232088> 未定义的方法“character\u
class Character < ActiveRecord::Base
has_many :weapons
end
class Weapon < ActiveRecord::Base
belongs_to :character
end
但我一直在犯这样的错误:
undefined method `character_id' for #<Weapon:0x007f9033232088>
未定义的方法“character\u id”#
我尝试使用字符串作为字符\u id
,但同样无效。表单以:字符
呈现,但是当然它不会保存回来,因为它需要id
api文档:
collection_select(method, collection, value_method, text_method, options = {}, html_options = {})
所以你想要
f.collection_select( :character_id, Character.all, :id, :name, {:prompt => 'Please Select a Character.'} )
api文档:
collection_select(method, collection, value_method, text_method, options = {}, html_options = {})
所以你想要
f.collection_select( :character_id, Character.all, :id, :name, {:prompt => 'Please Select a Character.'} )
您的代码看起来不错,很可能您的武器型号上没有
字符\u id
字段。如果这样做,则需要运行挂起的迁移
您可以通过查看db/schema.db
来检查数据库的当前状态,它将显示您是否有character\u id列
您可以使用rake db:migrate
运行迁移,然后使用rake db:test:prepare
更新测试数据库
如果在运行迁移后它不起作用,那么您需要创建一个,应该类似于:
# db/migrations/add_character_id_to_weapons.rb
class AddCharacterIdToWeapons < ActiveRecord::Migration
def change
add_column :weapons, :character_id, :integer
end
end
#db/migrations/add_character_id_to_wearms.rb
类AddCharacterIdToWeapons
您的代码看起来不错,很可能您的武器型号上没有字符id
字段。如果这样做,则需要运行挂起的迁移
您可以通过查看db/schema.db
来检查数据库的当前状态,它将显示您是否有character\u id列
您可以使用rake db:migrate
运行迁移,然后使用rake db:test:prepare
更新测试数据库
如果在运行迁移后它不起作用,那么您需要创建一个,应该类似于:
# db/migrations/add_character_id_to_weapons.rb
class AddCharacterIdToWeapons < ActiveRecord::Migration
def change
add_column :weapons, :character_id, :integer
end
end
#db/migrations/add_character_id_to_wearms.rb
类AddCharacterIdToWeapons
我一直在避免添加新的迁移,因为文档似乎暗示rails有一些神奇的功能,可以自动添加_id列,我担心会让事情变得更糟,但这完全有效。非常感谢!我一直在避免添加新的迁移,因为文档似乎暗示rails有一些神奇的功能,可以自动添加_id列,我担心会让事情变得更糟,但这完全有效。非常感谢!