我对RoR很陌生,我正在尝试创建一个应用程序,用户可以在该应用程序上多选状态(复选框)并保存所选内容(想想"我去过什么状态")。在创建一个将这些作为属性的类时,接近脚手架并使其显示的最佳方式是什么?我认为把所有50个州都放在脚手架上可能不是正确的做法。
您可以在模型中有一个数组列,用于存储状态的id,但这不是一个好的解决方案。
我想说的最好的解决方案是创建一个中间表(因为一个状态可以由多个用户检查,一个用户可以检查多个状态),并创建一个与其相关的模型:
class User < ActiveRecord::Base
belongs_to :state_check
has_many :states, through: :state_checks
end
class StateCheck < ActiveRecord::Base
belongs_to :user
belongs_to :state
end
class State < ActiveRecord::Base
belongs_to :state_check
has_many :users, through: :state_checks
end
这样你就可以做一些类似的事情:
@user.states
最终,您可以向state_check表中的关系添加更多内容。
您可能应该阅读:http://guides.rubyonrails.org/association_basics.html#the-有许多通过关联的