「Trip」というモデルがあり、「グループ」の特定のユーザーのみが「コメント」を作成できるようにしたい。特定のユーザーのみが文書を編集できるように新しい関係を作成する
トリップモデルを初めて作成したときに、1人のユーザーしか編集できないように設定しました。今、他のユーザーにも同様に編集を依頼できます。今私を踏み外している部分は、trip belong_to :user
(それを作成したユーザー)とtrip has_many :users, :through => :group
の両方があることです。
質問:
- この許可あたりRailsの慣例ですか?
- 私のモデルに基づいて、グループはuser_idとtrip_idの両方を持ちます。これがこの問題にアプローチする最善の方法ですか?つまり、グループに招待されたすべてのユーザーのデータベースに新しいレコードがあるはずです。
ありがとうございます。
user.rb
class User < ActiveRecord::Base
has_many :trips, :through => :groups
has_many :trips, :dependent => :destroy
has_many :groups
has_many :comments, :dependent => :destroy
end
group.rb
class Group < ActiveRecord::Base
belongs_to :trip
belongs_to :user
end
trip.rb
class Trip < ActiveRecord::Base
belongs_to :user
belongs_to :traveldeal
has_many :groups
has_many :users, :through => :groups
end
comment.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 %>
':group'の代わりに':through =>:groups'を試してみます – niiru
私のビューはエラーを表示しなくなりましたが、ユーザに属するトリップも表示されません。投稿を訂正しました。 – Huy