2013-07-27 82 views
0

我下面這段代碼https://stackoverflow.com/a/17886089/692622,這裏是我的client.rb模型文件和文件client_controller.rb未定義的局部變量或方法

# app/models/client.rb 
before_create :add_unsubscribe_hash 

private 

def add_unsubscribe_hash 
    self.unsubscribe_hash = SecureRandom.hex 
end 

# app/controllers/clients_controller.rb 
def unsubscribe 
    client = Client.find_by_unsubscribe_hash(params[:unsubscribe_hash]) 
    client.update_attribute(:subscription, false) 
end 

,但是當我試圖通過/客戶/新(我要添加客戶端都在控制文件也是如此),我得到錯誤

undefined local variable or method `add_unsubscribe_hash' 
7種方法

的誤差,同時節省客戶在創建方法

respond_to do |format| 
    if @client.save 
未來

任何想法是什麼,因爲一切都錯了看起來沒事

編輯 - 我已經添加了型號代碼在引擎收錄http://pastebin.com/jkegLsaE

+0

已運行遷移? 'rake db:migrate'? – creativereason

+0

@creativereason - 是的,我有 – iCyborg

+1

請發佈您的_entire_模型代碼。 – zeantsoi

回答

2

請注意,在線路your Pastebin 40,你打開一個foreach循環,在42行終止,但。相反,foreach循環包含整個add_unsubscribe_hash函數聲明,所以它不能由:before_create回調調用。

通過締結應該在關閉功能內循環解決這個(並確保您刪除多餘的end標籤在文件的結尾):

# app/models/contact.rb 
def self.import(file) 
    CSV.foreach(file.path, headers: true) do |row| 
     Contact.create! row.to_hash 
    end 
end 
相關問題