我有一个模型“Trip”,我希望只能让“组”中的某些用户创建“评论”。
当我第一次创建旅行模型时,我将它设置为只有一个用户可以编辑它。现在,我希望能够邀请其他用户来编辑它。现在让我绊倒(双关语)的部分是我同时拥有trip belong_to :user
(创建它的用户)和trip has_many :users, :through => :group
.
问题:
- 这是每个 Rails 约定允许的吗?
- 根据我的模型,组将同时具有 user_id 和 trip_id。这是解决这个问题的最佳方法吗?也就是说,数据库中是否应该为我邀请加入组的每个用户创建一条新记录?
谢谢。
用户.rb
class User < ActiveRecord::Base
has_many :trips, :through => :groups
has_many :trips, :dependent => :destroy
has_many :groups
has_many :comments, :dependent => :destroy
end
组.rb
class Group < ActiveRecord::Base
belongs_to :trip
belongs_to :user
end
行程.rb
class Trip < ActiveRecord::Base
belongs_to :user
belongs_to :traveldeal
has_many :groups
has_many :users, :through => :groups
end
评论.rb
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :commentable, :polymorphic => true
end
查看 (show.html.erb)
<% unless @user.trips.empty? %>
<% @user.trips.each do |trip| %>
<!-- Content here -->
<% end %>
<% end %>