【问题标题】:Rails getter and setter method issue?Rails getter 和 setter 方法问题?
【发布时间】:2015-05-12 23:10:30
【问题描述】:

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"' 时,它不会设置 'role' setter,但执行 'self.role = "owner"' 会在 'line 5' 中设置它,如何? 'customer_id'、'stripe_token'、'email' 和 'stripe_token' getter 也可以在没有 'self' 关键字的情况下在 'line 1'、'line 2'、'line 3' 和 'line 4' 中获取价值。怎么样?

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-06-23
    • 1970-01-01
    • 2019-01-12
    • 2011-04-14
    • 2017-09-09
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多