ผมแอดคอลัมภ์เพิ่มใน table Tag ชื่อ user_id ทีนี้ผมจะต้องการเพิ่ม user_id ไปด้วยระหว่างที่แอด tag แต่ผมหาวิธีไม่เจอครับ @person.tag_list.add(params[:tag][:name]) ตรงนี้จะแอด ได้แต่ name แอดอย่างอื่นไม่ได้ครับ
http://agilewebdevelopment.co Sarawut_P Thu, 03/09/2009 - 16:36 http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids plug-in ตัวนี้น่ะครับ Log in or register to post comments อ่า ... Sikachu Fri, 04/09/2009 - 01:21 อ่า ... อันนี้คือจะดูว่า 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 Log in or register to post comments Database Sarawut_P Fri, 04/09/2009 - 10:48 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 ส่วนบุคคลนั้นผู้ใช้แต่ละคนจะแตกต่างกัน Log in or register to post comments อย่างนี้ต Sikachu Sun, 06/09/2009 - 20:54 In reply to Database by Sarawut_P อย่างนี้ต้อง override acts_as_taggable แล้วล่ะครับ ในส่วนของการเพิ่ม tag association เพราะคิดว่าใน plugin คงทำให้มัน support เฉพาะ global tag เท่านั้น ลองไล่ดู source code แล้ว override ดูครับ แต่ถ้าไม่ได้จริงๆ เข้ามาบอกนะครับ เดี๋ยวผมช่วย ... แต่อยากให้ลองทำดูก่อน ;) บล็อกของผม: http://sikachu.com Log in or register to post comments ได้แล้วคร Sarawut_P Mon, 07/09/2009 - 10:20 ได้แล้วครับ พี่ที่ทำงานช่วยกันหาวิธีให้ >___< แต่มันซับซ้อนเกินระดับฝีมือของผมมากเลย ขอบคุณพี่ ซิกาชู มากครับ ที่มาช่วยดู Log in or register to post comments
http://agilewebdevelopment.co Sarawut_P Thu, 03/09/2009 - 16:36 http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids plug-in ตัวนี้น่ะครับ Log in or register to post comments
อ่า ... Sikachu Fri, 04/09/2009 - 01:21 อ่า ... อันนี้คือจะดูว่า 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 Log in or register to post comments
Database Sarawut_P Fri, 04/09/2009 - 10:48 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 ส่วนบุคคลนั้นผู้ใช้แต่ละคนจะแตกต่างกัน Log in or register to post comments
อย่างนี้ต Sikachu Sun, 06/09/2009 - 20:54 In reply to Database by Sarawut_P อย่างนี้ต้อง override acts_as_taggable แล้วล่ะครับ ในส่วนของการเพิ่ม tag association เพราะคิดว่าใน plugin คงทำให้มัน support เฉพาะ global tag เท่านั้น ลองไล่ดู source code แล้ว override ดูครับ แต่ถ้าไม่ได้จริงๆ เข้ามาบอกนะครับ เดี๋ยวผมช่วย ... แต่อยากให้ลองทำดูก่อน ;) บล็อกของผม: http://sikachu.com Log in or register to post comments
ได้แล้วคร Sarawut_P Mon, 07/09/2009 - 10:20 ได้แล้วครับ พี่ที่ทำงานช่วยกันหาวิธีให้ >___< แต่มันซับซ้อนเกินระดับฝีมือของผมมากเลย ขอบคุณพี่ ซิกาชู มากครับ ที่มาช่วยดู Log in or register to post comments
http://agilewebdevelopment.co
Sarawut_P Thu, 03/09/2009 - 16:36
http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids
plug-in ตัวนี้น่ะครับ
อ่า ...
Sikachu Fri, 04/09/2009 - 01:21
อ่า ... อันนี้คือจะดูว่า 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
Database
Sarawut_P Fri, 04/09/2009 - 10:48
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 ส่วนบุคคลนั้นผู้ใช้แต่ละคนจะแตกต่างกัน
อย่างนี้ต
Sikachu Sun, 06/09/2009 - 20:54
In reply to Database by Sarawut_P
อย่างนี้ต้อง override acts_as_taggable แล้วล่ะครับ ในส่วนของการเพิ่ม tag association เพราะคิดว่าใน plugin คงทำให้มัน support เฉพาะ global tag เท่านั้น
ลองไล่ดู source code แล้ว override ดูครับ แต่ถ้าไม่ได้จริงๆ เข้ามาบอกนะครับ เดี๋ยวผมช่วย ... แต่อยากให้ลองทำดูก่อน ;)
บล็อกของผม: http://sikachu.com
ได้แล้วคร
Sarawut_P Mon, 07/09/2009 - 10:20
ได้แล้วครับ พี่ที่ทำงานช่วยกันหาวิธีให้ >___<
แต่มันซับซ้อนเกินระดับฝีมือของผมมากเลย
ขอบคุณพี่ ซิกาชู มากครับ ที่มาช่วยดู