Posted by
網站想要開發「好友名單」功能時,會新增Table來記錄好友之間的關係,在Rails應該怎麼做呢?假設目前系統已經有User這個Model,我們將會建立 User has_many friends的關係來記錄每個User擁有的好友們。
首先新增一張Table來記錄Friendship(請善用Migration):
class AddFriendship < ActiveRecord::Migration
def self.up
create_table :friendships, :id => false do |t|
t.column :user_id, :integer, :null => false
t.column :friend_id, :integer, :null => false
end
end
def self.down
drop_table :friendships
end
end
接下來在User Model中定義好友關係:
class User < ActiveRecord::Base
has_and_belongs_to_many :friends,
:class_name => "User",
:join_table => "friendships",
:association_foreign_key => "friend_id",
:foreign_key => "user_id"
end
如此一來,你就可以用下列語法來建立使用者之間的好友關係:
u = User.create(:name => "deduce") k = User.create(:name => "punk") u.friends << k if not u.friends.include?(k) # 如果 u 的好友不包含 k 則加入好友,不需要另外進行儲存的動作
u.friends取得好友名單、u.friends.count取得好友人數
您好! 你的這篇好友對我效益極大
正在為了好友名單頭痛
我的想法比較笨一點…
藉由button的方式 取得params[:id]的值
還有 session[:user_id] 取得目前使用者的id
分別 存入 user_id 及 friend_id
但由於會有重覆的加入的情況發生…
正在苦悶著要怎麼定義… 重覆加入好友的情況...
一開始是想到…
freind.find(:all :conditions=> "user_id = ■ and friend_id = ▲")
版主應該懂我在打什麼@@
就是想確認目前freindship有沒有已加入的情況…
無奈 這個 這個敘述句 怎麼寫就是寫不好…
害系統一直判斷失敗@@
懇請版主可以指導指導@@
你好! 最近我在建置一個… 也是類似於加入好友 只是想破頭一直弄不好
所以想詢問版主的一些看法…
一個旅遊行程 有多個 用戶參與!
我先建立了旅遊行程這個table名:travel, id、descripion、..........
又建立了一個參與名單:joinlist 仿效你的方式
****************
Create_table :joinlists, :id => false do |t| t.column :travel_id, :integer, :null => false t.column :joinner_id, :integer, :null => false
end
****************
接下來我是否應該在travel的model 裡打上 (或是其他model?)
class Travel “Travel , ← 這裡是該打這樣嗎?
:join_table => “joinlists”,
:association_foreign_key => “joinner_id”,
:foreign_key => “travel_id”end
只是我照這方式 試著去做… 他無法判讀出… u.█ ← (他不知道這是啥)
不知版主有何見解^^? 又再次麻煩你嚕