私はソーシャルネットワークを構築しています。私は友情の関係にこだわっています。
表の友情::友情モデルで友情協会の問題
create_table "friendships", :force => true do |t|
t.integer "user_id"
t.integer "friend_id"
t.boolean "confirmed"
t.datetime "created_at"
t.datetime "updated_at"
協会:ユーザーモデルで
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User"
マイ間違え協会:
has_many :friendships #table that contains the reference of friends
has_many :friends, :through=>:friendships, :conditions => ['confirmed = false'] #my performed request to others friends
has_many :inverse_friendship, :class_name=>"Friendship", :foreign_key=>"friend_id" #someone requested friendship to me
has_many :inverse_friends, :through=>:inverse_friendship, :source=>:user
で確認ブールこれらは私のデータであり、テーブルの友情は、要求が両方の友人によって受け入れられる場合、友人のリクエストが送信されたときのデフォルトはfalseです。 私がモデルにユーザーを取得することです:
- は多くを持っている:友情モデルの確認をfalseに設定し、私はソースよさrequests_sent番号(USER_ID)
- は多くを持っています:request_recieved#フレンドシップモデルでの確認がfalseに設定されていて、私がターゲット(friend_id)である場合
多くの:フレンドシップモデルでの確認がtrueに設定されていて、 (user_id)またはターゲット(friend_id)
私が書いたコードからわかるように、条件=> 'confirmed = false'を入れようとしましたが、レールはFriendshipモデルではなくユーザーモデルに条件を適用します。これは私の3を達成する正しい方法ではありません目標は、モデルユーザーの無料の方法で? TNX
私は私のモデルを変更したくないPSは、私は、既存のもののためのソリューションを持っていると思い