Tags:
Forums: 

ผมแอดคอลัมภ์เพิ่มใน table Tag ชื่อ user_id
ทีนี้ผมจะต้องการเพิ่ม user_id ไปด้วยระหว่างที่แอด tag แต่ผมหาวิธีไม่เจอครับ

@person.tag_list.add(params[:tag][:name])

ตรงนี้จะแอด ได้แต่ name แอดอย่างอื่นไม่ได้ครับ

Get latest news from Blognone
By: Sarawut_P on 3 September 2009 - 16:36 #122607

http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids

plug-in ตัวนี้น่ะครับ

By: Sikachu
ContributoriPhoneIn Love
on 4 September 2009 - 01:21 #122676
Sikachu's picture

อ่า ... อันนี้คือจะดูว่า tag อันนี้เป็นของใครหรือครับ? :)

ปกติแล้ว acts_as_taggable นี่ผมไม่ค่อยไปโมมันครับ ส่วนใหญ่ที่ทำถ้าอยากรู้ว่าคนๆ นี้เคยไปโพสอะไรบ้าง (สมมุติว่าผมติด acts_as_taggable ที่ Post ละกันนะครับ) ผมจะใช้วิธี


@tags_by_user = Tag.all(:conditions => ["taggings.taggable_id IN (?) AND taggings.taggable_type = 'Post'", @user.post_ids], :joins => :taggings)

(โค้ดถูกหรือเปล่าไม่แน่ใจ ลองเทสแล้วแก้ดูนะครับ)

หรือถ้าอยากแก้ที่ taggables จริงๆ ก็ลองแกะจาก source ได้ครับ แล้ว override เอา :) แต่ผมคิดว่ามันทำให้ตัว plugin ไม่ atomic ถ้ามีการอัพเกรดครับ :)

บล็อกของผม: http://sikachu.com


บล็อกของผม: http://sikachu.com

By: Sarawut_P on 4 September 2009 - 10:48 #122733

Database เป็นแบบนี้ครับ

Tag

id | name | user_id

Taggable

ใน taggings จะประกอบด้วย

id,tag_id,taggable_id,taggable_type,created_at

เฃ่น

44,59,1938,Person,2009-09-03 10:41:10

ใน tags จะมี

id,name,user_id => 59,example,42/null
ค่าของ user_id เป็นค่าที่มาจาก session[:user_id]
Tags ในโปรแกรมผมจะแบ่งเป็น แท็คส่วนกลาง กับ แท็คส่วนบุคคล
แท็กส่วนกลางนั้นผู้ใช้ทุกคนจะใฃ้ร่วมกันใน Taggable_id นึง ๆ
แต่ Tags ส่วนบุคคลนั้นผู้ใช้แต่ละคนจะแตกต่างกัน

By: Sikachu
ContributoriPhoneIn Love
on 6 September 2009 - 20:54 #123137 Reply to:122733
Sikachu's picture

อย่างนี้ต้อง override acts_as_taggable แล้วล่ะครับ ในส่วนของการเพิ่ม tag association เพราะคิดว่าใน plugin คงทำให้มัน support เฉพาะ global tag เท่านั้น

ลองไล่ดู source code แล้ว override ดูครับ แต่ถ้าไม่ได้จริงๆ เข้ามาบอกนะครับ เดี๋ยวผมช่วย ... แต่อยากให้ลองทำดูก่อน ;)

บล็อกของผม: http://sikachu.com


บล็อกของผม: http://sikachu.com

By: Sarawut_P on 7 September 2009 - 10:20 #123208

ได้แล้วครับ พี่ที่ทำงานช่วยกันหาวิธีให้ >___<
แต่มันซับซ้อนเกินระดับฝีมือของผมมากเลย
ขอบคุณพี่ ซิกาชู มากครับ ที่มาช่วยดู