неопределенная локальная переменная или метод `customer_id ', но поле customer_id существует и существует связь один-ко-многим

Я получаю эту ошибку при попытке обновить столбец customer_id в моей таблице пользователей, но не могу понять, почему. Модель пользователя has_many: orders и Order model belongs_to: user, таблица orders имеет правильный внешний ключ users_id, и другие вещи, которые полагаются на эту связь, работают нормально.

ошибка:

undefined local variable or method `customer_id' for #<Order:0x007ff27014f9f0>

app/models/order.rb:16:in `save_with_payment'
app/controllers/orders_controller.rb:53:in `block in create'
app/controllers/orders_controller.rb:52:in `create' 

order.rb

belongs_to :user

def save_with_payment
if valid?
  customer = Stripe::Customer.create(description: email, card: stripe_card_token)
  self.stripe_customer_token = customer.id
  self.user.update_column(customer_id, customer.id) # this is line 16
  save!

  Stripe::Charge.create(
      :amount => (total * 100).to_i, # in cents
      :currency => "usd",
      :customer => customer.id
  )

end
rescue Stripe::InvalidRequestError => e
logger.error "Stripe error while creating customer: #{e.message}"
errors.add :base, "There was a problem with your credit card."
false
end

orders_controller.rb

def create
if current_user
  @order = current_user.orders.new(params[:order])
else
  @order = Order.new(params[:order])
end
respond_to do |format|        # this is line 52
  if @order.save_with_payment # this is line 53

    format.html { redirect_to auctions_path, :notice => 'Your payment has been successfully processed and your credit card has been linked to your account.' }
    format.json { render json: @order, status: :created, location: @order }
    format.js
  else
    format.html { render action: "new" }
    format.json { render json: @order.errors, status: :unprocessable_entity }
    format.js
  end
end
end

user.rb

has_many :orders

person railsy    schedule 27.12.2012    source источник


Ответы (1)


person    schedule
comment
о красавица! Отсутствие толстой кишки испортило мне рождество !! - person railsy; 27.12.2012