before_save&before_create标题化麻烦

fly*_*llo 1 ruby-on-rails ruby-on-rails-3

我正在开发一个rails应用程序,我试图在保存或创建属性之前对其进行标题化.我很确定我已经正确地完成了这个,但是,每当我尝试在我的rails控制台中创建一个新记录时,标题化都没有发生.这是我的型号代码:

class City < ActiveRecord::Base
  attr_accessible :name, :region_id

  belongs_to :region

  before_save :tileize_name
  before_create :tileize_name


  def tileize_name
    self.name.titleize
  end

end
Run Code Online (Sandbox Code Playgroud)

当我在控制台中读取属性时,标题化方法有效.例如:

Region.find(4).name
 => "arizona" 


Region.find(4).name.titleize
 => "Arizona" 
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

Bar*_*aun 7

您正在标题名称但不保存它.

string = "hello"
string.titleize
# => "Hello"
string
# => "hello"

string = string.titleize
# => "Hello"
string
# => "Hello"
Run Code Online (Sandbox Code Playgroud)

您需要将标题化名称分配给name属性.

def tileize_name
  self.name = self.name.titleize
end
Run Code Online (Sandbox Code Playgroud)