我正在创建一个应用程序,用于跟踪用户的工作情况以及他们在公司中的位置。我需要一些帮助尝试路由应用程序,我已经制作了user
,company
和department
的支架。
user
company
(用户has_many:through =>就业)
department
user.rb
class User < ActiveRecord::Base
#associations
has_many :employments
has_many :companies, :through => :employments
has_one :department, :through => :employments
end
employment.rb
class Employment < ActiveRecord::Base
belongs_to :user
belongs_to :company
belongs_to :department
has_many :employment_histories
end
employment_history.rb
class EmploymentHistory < ActiveRecord::Base
belongs_to :employment
end
company.rb
class Company < ActiveRecord::Base
has_many :employments
has_many :users, :through => :employments
has_many :departments
end
department.rb
class Department < ActiveRecord::Base
belongs_to :company
end
答案 0 :(得分:0)
对于路由,最简单的方法是将资源声明为资源,然后通过对象的id访问它们。 http://guides.rubyonrails.org/routing.html#resource-routing-the-rails-default
然后通过关联查找,我建议您查看此railscast:http://railscasts.com/episodes/3-find-through-association?view=asciicast
如果通过关联进行路由和查找并不容易,那么您可能希望重构您的层次结构以使其更具意义。例如,我的方法是:
然后,您可以通过关联访问所有这些数据(请参阅上面的链接)。您只需要路由资源,然后知道如何在正确的控制器中访问它们。