未定义的方法`paypal_url'

时间:2013-04-03 06:19:08

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我正在开发我的应用程序中的支付系统。因此我参考了轨道广播ep-141 我按照每一集的所有步骤,但我得到了这个错误

undefined method `paypal_url'   

我试过但没有找到答案。

这里我有BookingDetail maodel如下

class BookingDetail < ActiveRecord::Base

belongs_to :room
attr_accessible :member_type_id, :room_type_id, :start_date, :end_date, :room_rate_id, :room_no, :customer_id, :room_id


def total_price
room_type.to_a.sum(&:room_rate)
end


def paypal_url(return_url)
    values = {
      :business => '',
      :cmd => '_cart',
      :upload => 1,
      :return => return_url,
      :invoice => id
    }
    room_type.each_with_index do |item, index|
      values.merge!({
    "room_rate_#{index+1}" => item.room_rate,
    "room_type_#{index+1}" => item.room_type,
    "room_id_#{index+1}" => item.room_rate.room_id,
    "quantity_#{index+1}" => item.quantity
      })
    end
    "https://www.sandbox.paypal.com/cgi-bin/webscr?" + values.to_query
end

这一行给了我错误

  <%=link_to "Checkout",@room.paypal_url(rooms_url)%>

我必须做什么?

1 个答案:

答案 0 :(得分:0)

paypal_url不是Room的方法,因为我看到BookingDetail的方法,因此您需要执行以下操作

@room.booking_detail.paypal_url(rooms_url)

而不是

@room.paypal_url(rooms_url)

假设您在Room模型中有以下内容

has_one:booking_detail

再一次,答案取决于Room模型中的内容