2009-11-06 41 views
6

我想將頁面的標題轉換爲友好的URL並將其作爲永久鏈接存儲在數據庫中。我的問題是我不能使用parameterize方法。它不工作。其他變化像upcasedowncase一樣工作,但parameterize不起作用。 parameterize有特殊情況嗎?如何在Rails中使用參數化?

這是我的代碼:

控制器:

def create 
params[:page][:permalink] = params[:page][:title].dup 
@page = Page.new(params[:page]) 
end 

型號:

class Page < ActiveRecord::Base 
before_save :makeitpermalink 
before_update :makeitpermalink 

private 
    def makeitpermalink 
    permalink.parameterize! 
    end 
end 
+3

歡迎來到SO,很高興在這裏看到鐵軌愛好者。下一次嘗試使用代碼格式化併爲了獲得響應而給你的問題一個更好的標題。我只是編輯了你的帖子,但你知道。關於我不知道的問題。你能提供錯誤信息或結果嗎? – marcgg

+0

在模型中,你也只需要有before_save回調; before_update是不必要的。 – amaseuk

+0

順便說一句,如果你有「before_save」,「before_update」是多餘的 – choonkeat

回答

9

按照Rails的文檔,有parameterize沒有警示符號(感嘆號)版本方法,請嘗試刪除它:

def make_it_permalink 
    self.permalink = self.permalink.parameterize 
end 
+1

如果我明白他想在這裏做什麼,這可能必須是:self.permalink = self.permalink.parameterize –

+0

謝謝大家。 – railslover

相關問題