【发布时间】:2016-01-11 05:22:22
【问题描述】:
在我的应用程序中,用户可以评价另一个用户。 我定义了以下架构:
# feedback.rb
class Feedback < ActiveRecord::Base
belongs_to :subject, class_name: 'User', foreign_key: 'subject_id'
belongs_to :writer, class_name: 'User', foreign_key: 'writer_id'
end
# user.rb
class User < ActiveRecord::Base
has_many :feedbacks, class_name: 'Feedback', foreign_key: 'subject_id'
has_many :written_feedback, class_name: 'Feedback', foreign_key: 'writer_id'
end
现在我必须定义路线,我一直在思考是否嵌套资源以及是否嵌套。
这就是我尝试定义路线的方式,但我不确定。 这样我只能接触到或给予用户的反馈或用户写的反馈。
#routes
....
resources :users, except: [:new, :edit] do
resources :feedbacks, except: [:new, :edit]
end
这是构建此架构的最佳方式吗?
【问题讨论】:
标签: ruby-on-rails database activerecord entity-relationship