0
這是我的代碼:如何從current_user.friends狀態+限量10個狀態
@current_user_statuses = current_user.statuses.limit(10)
@friends_statuses = current_user.friends.collect(&:statuses)
if current_user.friends.collect(&:doweets)[0].any?
@friends_statuses = current_user.friends.collect(&:statuses)[0]
end
@statuses = (@current_user_statuses + @friends_statuses).sort_by{ |d| - d.created_at.to_i
我想讓它像這樣:
@current_user_statuses = current_user.statuses.limit(10)
@friends_statuses = current_user.friends.statuses.limit(10)
@statuses = (@current_user_statuses + @friends_statuses).sort_by{ |d| - d.created_at.to_i
但是當我做,我得到錯誤...
我該怎麼辦?
我的模型:
友誼模式:
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
def self.are_friends(user, friend)
return false if user == friend
return true unless find_by_user_id_and_friend_id(user, friend).nil?
return true unless find_by_user_id_and_friend_id(friend, user).nil?
return false
end
def self.request(user, friend)
return false if are_friends(user, friend)
return false if user == friend
f1 = new(:user => user, :friend => friend, :status => "pending")
f2 = new(:user => friend, :friend => user, :status => "requested")
transaction do
f1.save
f2.save
end
end
def self.accept(user, friend)
f1 = find_by_user_id_and_friend_id(user, friend)
f2 = find_by_user_id_and_friend_id(friend, user)
if f1.nil? or f2.nil?
return false
else
transaction do
f1.update_attributes(:status => "accepted")
f2.update_attributes(:status => "accepted")
end
end
return true
end
def self.reject(user, friend)
f1 = find_by_user_id_and_friend_id(user, friend)
f2 = find_by_user_id_and_friend_id(friend, user)
if f1.nil? or f2.nil?
return false
else
transaction do
f1.destroy
f2.destroy
return true
end
end
end
用戶模型:
has_many :doweets
has_many :friendships
has_many :friends,
:through => :friendships,
:conditions => "status = 'accepted'"
has_many :requested_friends,
:through => :friendships,
:source => :friend,
:conditions => "status = 'requested'",
:order => :created_at
has_many :pending_friends,
:through => :friendships,
:source => :friend,
:conditions => "status = 'pending'",
:order => :created_at
謝謝!
編輯:
我的錯誤: NoMethodError:未定義的方法`doweets'爲#
發表您的日誌與適當的錯誤。 – s84
當然...增加了錯誤: – gal
NoMethodError:未定義的方法'doweets'爲# –
gal