1

我試圖用標記設置博客,並且在嘗試保存時遇到問題。使用標籤創建新博客

我有3種型號

博客模式

has_many :blog_tags 
has_many :tags, :through => :blog_tags 

blog_tag模式

belongs_to :blog 
belongs_to :tag 

標籤模式

[nothing] 

當我發佈我的博客表單時,我得到了一個用逗號分隔的我想在blog_tags tabel中創建的標籤列表的輸入字段。

我一直在嘗試一些不同的東西,並結束了與此

@blog_tags = params[:blog][:tags].split(",") 

@blog_tags.each do |tag| 
    @tag = Tag.find_by_tag(tag) 
    @blog.tags.push(@tag) 
end 

似乎工作除了它抱怨父母不創建,並在第二嘗試它給了我一個錯誤試圖分割字符串「string1」,我猜是沒有任何逗號造成的。

我真的希望你們中的一個在那裏可以幫助我在這裏,或至少點我正確的方向:-)

謝謝!

回答

1

我會去找一個寶石。例如,嘗試https://github.com/mbleigh/acts-as-taggable-on

+0

感謝您的鏈接。我最好自己做這件事,因爲我主要是做網頁作爲學習鐵路項目,但經過一段時間的思考後,我決定與寶石一起走:-) –

+0

我明白你的觀點,但重新發明車輪並不是真正的除非你是一名真正的初學者學習處理代碼,閱讀代碼或使用別人寫的APIS,無論如何都是學習的好方法。 – lucapette

0

我認爲你只需要處理params[:blog][:tags]沒有逗號的情況。在這種情況下,整個字符串是一個標籤,所以只需添加它。

您可能還需要處理像「ruby,rails」這樣的情況,即確保標籤不是空的。