Ruby中的“创建具有50个美国州的应用程序”复选框



我对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-有许多通过关联的

相关内容

最新更新