我用铁轨工作
我的项目使用MongoDB制作API
我犯了个错误:
nomethoderror:未定义的方法“persistend?”对于actioncontroller::参数:0x000055F487FC4AC8
此错误出现在创建方法的控制器中:

  def create
    if @merchant.order.push(get_params)
     render json: {:response => true, :status => "ok"}
    else
     render json: {:response => false, :status => "ok"}
    end
  end

  def get_params
  params.required(:order).permit!
  end

这是我的模型:
class Order
 include Mongoid::Document
 include Mongoid::Timestamps

 field :items
 field :grand_total, type: Integer

 belongs_to :merchant
end

我感谢大家的支持,谢谢。

最佳答案

push接受Order的实例,我假设您传递的是类似于ActionController::Parameters的内容。此外,push始终返回关联。我认为如果失败了,它将是一个例外,然后if就没有意义了。我建议改用create。因此(假设get_params是ActionController::ParametersHash的实例,并且orderhas_many关系):

if @merchant.order.create(get_params)
   render json: {:response => true, :status => "ok"}
  else
   render json: {:response => false, :status => "ok"}
  end
end

如果这是一种hash_one关系,它应该类似于:
params = get_params.merge(merchant: @merchant)
if @Order.create(params)
   render json: {:response => true, :status => "ok"}
  else
   render json: {:response => false, :status => "ok"}
  end
end

09-25 19:25