Ruby on rails 分条付款,将另一个模型的价格添加到付款方法中

Ruby on rails 分条付款,将另一个模型的价格添加到付款方法中,ruby-on-rails,ruby-on-rails-3,mongodb,mongoid,stripe-payments,Ruby On Rails,Ruby On Rails 3,Mongodb,Mongoid,Stripe Payments,我已经在我的应用程序中添加了条带支付来处理事件的注册付款,表单在事件显示页面上,因此方法在事件控制器中,但我已经创建了注册模型。我的问题是试图将事件的价格输入注册模型中的save\u with\u payment方法(total\u price) 有什么想法吗?我试过attr\u accessible:price,但运气不好 事件控制器 路线 看法 :post,:url=>注册路径do | f |%> 卡号 安全代码(CVC) 信用卡到期日 如果一切正常,请点击这里: def show @e

我已经在我的应用程序中添加了条带支付来处理事件的注册付款,表单在事件显示页面上,因此方法在事件控制器中,但我已经创建了注册模型。我的问题是试图将事件的价格输入注册模型中的
save\u with\u payment
方法(
total\u price

有什么想法吗?我试过
attr\u accessible:price
,但运气不好

事件控制器 路线 看法
:post,:url=>注册路径do | f |%>
卡号
安全代码(CVC)
信用卡到期日

如果一切正常,请点击这里:

def show
  @event = Event.where(:slug => params[:slug]).first
  @registration = Registration.new
end
是具有视图的控制器操作,包含表单

注册应该属于活动,我想,通过
:has_one

然后您的注册模型需要
event\u id
integer列。当您在show中声明
@event
时,请将您的注册表附加

<%= f.input :event_id, as: :hidden, value: @event.id %>
这是一个基本的例子,我不知道,你们的应用程序中的事件是什么,也许你们可以传递更好的属性

之后,您可以将
@event.price
作为参数传递给model方法:

def save_with_payment(total_price)
  if valid?
   charge = Stripe::Charge.create({
   amount: total_price,
   #other code

如果我一切正常,这里:

def show
  @event = Event.where(:slug => params[:slug]).first
  @registration = Registration.new
end
是具有视图的控制器操作,包含表单

注册应该属于活动,我想,通过
:has_one

然后您的注册模型需要
event\u id
integer列。当您在show中声明
@event
时,请将您的注册表附加

<%= f.input :event_id, as: :hidden, value: @event.id %>
这是一个基本的例子,我不知道,你们的应用程序中的事件是什么,也许你们可以传递更好的属性

之后,您可以将
@event.price
作为参数传递给model方法:

def save_with_payment(total_price)
  if valid?
   charge = Stripe::Charge.create({
   amount: total_price,
   #other code

注册是否属于:事件?不,这也不起作用。丹--我的问题是是或不是,不是答案。。。事件和注册在数据库中是如何相互关联的?抱歉Jesse,它们没有关联。我的客户希望在event show页面上显示表单,因此我认为应该在event controller中包含操作,然后将create payment方法保留在一个注册模型中。你能告诉我哪里出错了吗?注册是否属于:事件?不,这也不行。丹--我的问题是是或不是,不是答案。。。事件和注册在数据库中是如何相互关联的?抱歉Jesse,它们没有关联。我的客户希望在event show页面上显示表单,因此我认为应该在event controller中包含操作,然后将create payment方法保留在一个注册模型中。你能告诉我哪里出错了吗?我的问题是我不知道如何在注册模型中获取活动价格。我将
(@event.price)
添加到
save\u with\u payment
方法中,现在我得到了nil:NilClass的未定义方法'price',因为event是nil.@DanMitchell,但是通过在deliver方法中传递
@event
,您期望得到什么呢?您的付款方式链接应该或包含id,或附加参数,您可以通过这些参数定义实例
@event
,但在这种背景下,我无法告诉您更多的消息,这完全让我不知所措,因为我需要事件显示页面上的表单,而不是指向/registration/new I的链接。我已经用更多的信息更新了这个问题,上面的代码适用于在我声明金额的情况下接受付款,但显然我需要通过声明每个事件的价格来保持它的动态性,这是我希望total price方法得到的。非常感谢您的帮助和建议:)@DanMitchell,活动和注册之间有什么关系?什么是活动?我正在建立一个活动网站,我需要人们买票注册。目前,事件和注册之间没有任何关系,只是我使用事件控制器访问有效的注册模型。我的问题是我不知道如何访问注册模型中的事件价格。我将
(@event.price)
添加到
save\u with\u payment
方法中,现在我得到了nil:NilClass的未定义方法'price',因为event是nil.@DanMitchell,但是通过在deliver方法中传递
@event
,您期望得到什么呢?您的付款方式链接应该或包含id,或附加参数,您可以通过这些参数定义实例
@event
,但在这种背景下,我无法告诉您更多的消息,这完全让我不知所措,因为我需要事件显示页面上的表单,而不是指向/registration/new I的链接。我已经用更多的信息更新了这个问题,上面的代码适用于在我声明金额的情况下接受付款,但显然我需要通过声明每个事件的价格来保持它的动态性,这是我希望total price方法得到的。非常感谢您的帮助和建议:)@DanMitchell,活动和注册之间有什么关系?什么是活动?我正在建立一个活动网站,我需要人们买票注册。目前,事件和注册之间没有关系,除了我使用事件控制器访问有效的注册模型。
@event=Event.find(params[:registration][params[:event_id]].to_i)
def save_with_payment(total_price)
  if valid?
   charge = Stripe::Charge.create({
   amount: total_price,
   #other code