簡體   English   中英

帖子模型中before_save的未定義方法錯誤

[英]undefined method errors for before_save in post model

我有一個發布模型,我試圖在該模型中實現before_save調用,以便可以在將表單輸入保存到數據庫之前對其進行操作。 我嘗試執行的任何操作都會引發錯誤,無論是小寫,參數化,gsub還是split。 我每次都會得到一個undefined method 'downcase' for報錯。 只需用我想做的任何事情替換小寫。 我要做的就是獲取用戶輸入的所有內容,並用下划線替換空格。

這是Post模型的一個版本。

class Post < ApplicationRecord
  belongs_to :user
  has_many :comments, dependent: :destroy
  before_save :permalink_tag
  strip_attributes

  acts_as_taggable

  private
  def permalink_tag 
    self.tag_list = self.tag_list.split(' ').join('_') unless self.tag_list.nil?
  end
end

現在,您可以使用以下任何一種方法簡單地替換permalink_tag方法中的代碼,它仍然會導致錯誤。

self.tag_list.gsub(/\s+/, "_")
before_save { |post| post.tag_list = post.tag_list.downcase }
self.tag_list.parameterize.underscore

錯誤更詳細:

NoMethodError in PostsController#update
undefined method `downcase' for ["sample-tag"]:ActsAsTaggableOn::TagList

應用程序跟蹤:

app/models/post.rb:4:in `block in <class:Post>'
app/controllers/posts_controller.rb:45:in `block in update'
app/controllers/posts_controller.rb:44:in `update'

知道這是gem的問題,因此我能夠在他們的文檔中找到答案。

ActsAsTaggableOn.force_lowercase = true
ActsAsTaggableOn.force_parameterize = true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM