Rails getter和setter方法问题?

时间:2015-03-11 08:44:05

标签: ruby-on-rails-4.1 ruby-2.1

在user.rb模型中

before_save :update_stripe

def update_stripe
  if customer_id.nil? #line 1
    if !stripe_token.present? #line 2
      raise "Stripe token not present. Can't create account."
    end
    customer = Stripe::Customer.create(
      :email => email, #line 3
      :card => stripe_token, #line 4
    )
    self.role = "owner" #line 5
  end
end  

当我做'role =“owner”'它没有设置'角色'的设定者,但做'self.role =“所有者”'设置它,在'第5行',怎么样?此外,'customer_id','stripe_token','email'和'stripe_token'getter可以在“第1行”,“第2行”,“第3行”和“第4行”中获取没有“self”关键字的值。怎么样?

1 个答案:

答案 0 :(得分:1)

执行setter_method = val,意味着,您实际上在方法中创建了一个局部变量,而不是访问您的setter,如Frederick Cheung提供的链接中所述。