Rails false:FalseClass 的未定义方法“update_attributes”
Rails undefined method `update_attributes' for false:FalseClass
如果争议保存更改订单布尔值 false 为 true
但在创建 rails 日志后显示
undefined method `update_attributes' for false:FalseClass
有人知道为什么吗?
order
has_one :dispute
dispute
belongs_to :order
def create
if current_user == @order.buyer
dispute = @order.dispute.nil? ? Dispute.new : @order.dispute
if dispute.save
@order = params[:dispute_status] == "1"
@order.update_attributes(:dispute_status => true)
redirect_to order_dispute_path(@order, @dispute)
flash[:success] = 'yess'
else
flash[:error] = 'Erro'
redirect_to :back
end
end
end
如果我删除@order.update_attributes(:dispute_status => true)
日志显示:
ActionController::RoutingError (No route matches {:action=>"create",
:controller=>"disputes", :order_id=>false, :format=>nil}
好吧,你有 @order = params[:dispute_status] == 1。这个 returns 是一个布尔值。在你的情况下,可能是错误的。所以现在@order 是一个布尔值 false 并且您正在尝试对其调用 update_attributes。
FalseClass.instance_methods.include?(:update_attributes) # false
ActiveRecord::Base.instance_methods.include?(:update_attributes) # true
您的@order 不是 ActiveRecord::Base 实例!清楚了吗?
如果争议保存更改订单布尔值 false 为 true 但在创建 rails 日志后显示
undefined method `update_attributes' for false:FalseClass
有人知道为什么吗?
order
has_one :dispute
dispute
belongs_to :order
def create
if current_user == @order.buyer
dispute = @order.dispute.nil? ? Dispute.new : @order.dispute
if dispute.save
@order = params[:dispute_status] == "1"
@order.update_attributes(:dispute_status => true)
redirect_to order_dispute_path(@order, @dispute)
flash[:success] = 'yess'
else
flash[:error] = 'Erro'
redirect_to :back
end
end
end
如果我删除@order.update_attributes(:dispute_status => true)
日志显示:
ActionController::RoutingError (No route matches {:action=>"create", :controller=>"disputes", :order_id=>false, :format=>nil}
好吧,你有 @order = params[:dispute_status] == 1。这个 returns 是一个布尔值。在你的情况下,可能是错误的。所以现在@order 是一个布尔值 false 并且您正在尝试对其调用 update_attributes。
FalseClass.instance_methods.include?(:update_attributes) # false
ActiveRecord::Base.instance_methods.include?(:update_attributes) # true
您的@order 不是 ActiveRecord::Base 实例!清楚了吗?