Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何自动验证优惠券并调整价格?_Javascript_Ruby On Rails_Ruby_Ajax_Ruby On Rails 4 - Fatal编程技术网

Javascript 如何自动验证优惠券并调整价格?

Javascript 如何自动验证优惠券并调整价格?,javascript,ruby-on-rails,ruby,ajax,ruby-on-rails-4,Javascript,Ruby On Rails,Ruby,Ajax,Ruby On Rails 4,我正在尝试将优惠券添加到我的结账页面,使用一个AJAX请求验证优惠券并相应地更新价格。但是,在加载checkout视图时,我会收到错误消息: 表单中的第一个参数不能包含nil或为空 参考行将表单更改为: <%= form_for @actioncode, method: :post, url: {action: "check_actioncode", :controller => 'actioncodes'}, remote: true do |f| %> <%= f

我正在尝试将优惠券添加到我的结账页面,使用一个AJAX请求验证优惠券并相应地更新价格。但是,在加载checkout视图时,我会收到错误消息

表单中的第一个参数不能包含nil或为空

参考行
将表单更改为:

<%= form_for @actioncode, method: :post, url: {action: "check_actioncode", :controller => 'actioncodes'}, remote: true do |f| %>
  <%= f.text_field :actioncode, :placeholder => "Enter your coupon" %>

您是否尝试过
谢谢,尝试过,然后在加载时收到不同的错误消息:
表单中的第一个参数不能包含nil或是空的
引用同一行。好的,这就是进度,用相关错误消息更新您的问题,以便我们可以查看并进一步帮助您我更新了原始帖子。不确定“在表单的html呈现中粘贴”是什么意思。表单直接包含在视图文件中(因此不是部分)。好的,
谢谢,我按照指示做了,但得到了错误消息:
表单中的第一个参数不能包含nil或为空
,它指的是@actioncode…
行的
表单。actioncode和优惠券代码之间有区别。有一个操作码模型,只有管理员向其写入数据。此模型包含用户在支付帐户时可能使用的所有操作代码。优惠券代码是指用户在结账时输入的值。这样做的目的是检查actioncodes模型中是否存在优惠券代码。如果是:应用与正确的actioncode记录对应的条件。与actioncodes模型一样,用户模型也有一个名为“actioncode”的列。我的想法是在签出后将使用过的操作代码的id写入最后一列。在我尝试的所有测试中,我意外地注释掉了控制器中的一行。正在更正此错误,新的错误消息是:
没有路由匹配{:action=>“check_actioncode”,:controller=>“organizations”}
。但正如你在原始帖子中看到的,路线是有定义的。不,没有定义。
check\u actioncode
方法在
actioncode
控制器中,而不是在
组织
控制器中。我看不出有任何理由使用
优惠券代码
属性。
post 'check_actioncode' => 'actioncodes#check_actioncode'
def check_actioncode
  @actioncode = Actioncode.find(params[:coupon_code])
  respond_to do |format|
    if !@actioncode.nil?
      format.js   {}
    else
      flash.now[:success] = "Action code not found or expired"
    end
  end
end
  def checkout
    @organization = Organization.new(organizationnew_params)
    if @organization.save
      @organization.members.each do |single_member|
        single_member.send_activation_email
      end
      @actioncode = Actioncode.new
      @amount = 100.00
      @currency = "EUR"
      @description = @organization.id
      @transaction_description = "My description"
      @transaction_type = "S"
      @hash = hash(@description, @amount, @currency, @transaction_type)
      render 'checkout'   # This renders the checkout view.
    else                            
      render 'new_premium'
    end
  end
<%= form_for @actioncode, method: :post, url: {action: "check_actioncode", :controller => 'actioncodes'}, remote: true do |f| %>
  <%= f.text_field :actioncode, :placeholder => "Enter your coupon" %>
def check_actioncode
  @actioncode = Actioncode.where(:actioncode => params[:actioncode][:actioncode]).first

  respond_to do |format|
    unless @actioncode.blank?
      format.js {}
    else
      flash.now[:success] = "Action code not found or expired"
    end
  end
end