Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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
Ruby on rails 语法错误:意外(#x27;)';,预期输入结束_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 语法错误:意外(#x27;)';,预期输入结束

Ruby on rails 语法错误:意外(#x27;)';,预期输入结束,ruby-on-rails,ruby,Ruby On Rails,Ruby,这似乎是一个错误,你会收到在你早期的编码和我的生活,我不明白为什么我会收到这个错误 我的代码如下: Order.joins(:all_adjustments).where(all_adjustments.last: { source_type: "Spree::PromotionAction" } ) 请,任何帮助都将不胜感激!我有一种感觉,我错过了一些非常明显的东西……我就是不知道这是什么鬼东西 错误: SyntaxError: unexpected ')', expecting end-o

这似乎是一个错误,你会收到在你早期的编码和我的生活,我不明白为什么我会收到这个错误

我的代码如下:

Order.joins(:all_adjustments).where(all_adjustments.last: { source_type: "Spree::PromotionAction" } )
请,任何帮助都将不胜感激!我有一种感觉,我错过了一些非常明显的东西……我就是不知道这是什么鬼东西

错误:

SyntaxError: unexpected ')', expecting end-of-input: "Spree::PromotionAction" } )
提前感谢

这是由于
where(所有调整。最后:
,这是无效的语法

where
的参数需要是一个散列,而您所拥有的不是有效的散列。如果要在散列中使用
{key:value}
语法,
key
必须是一个符号,而您正试图将表达式放在那里

试试看

Order.joins(:all_adjustments).where(all_adjustments: { source_type: "Spree::PromotionAction" } )
这可能不起作用,这取决于您如何设置关系,但它应该让您更接近真正的错误。

这是由于
where(所有调整。最后:
,这是无效的语法

where
的参数需要是一个散列,而您所拥有的不是有效的散列。如果要在散列中使用
{key:value}
语法,
key
必须是一个符号,而您正试图将表达式放在那里

试试看

Order.joins(:all_adjustments).where(all_adjustments: { source_type: "Spree::PromotionAction" } )

这可能不起作用,取决于您如何设置关系,但它应该让您更接近真正的错误。

在关系
中有很多:所有调整,类名:'Spree::Adjustment'
,所有调整只是定义订单和其调整之间关系的自定义名称(这就是指定类名称的原因)

在查询的情况下,您需要加入关联名称(因此
all_adjustments
)()
根据此联接的结果,您可以创建一个使用联接中任何表的条件。(。在您的情况下,表名为
spree\u adjustments

因此,您的查询应该是这样工作的:

Spree::Order.joins(:all_adjustments).where(spree_adjustments: { source_type: "Spree::PromotionAction" } )

在关系
中有许多:所有调整,类名称:'Spree::Adjustment'
,所有调整只是一个自定义名称,用于定义订单和他的调整之间的关系(这就是为什么要指定类名称)

在查询的情况下,您需要加入关联名称(因此
all_adjustments
)()
根据此联接的结果,您可以创建一个使用联接中任何表的条件。(。在您的情况下,表名为
spree\u adjustments

因此,您的查询应该是这样工作的:

Spree::Order.joins(:all_adjustments).where(spree_adjustments: { source_type: "Spree::PromotionAction" } )

谢谢你的回复!我试过了,它确实消除了错误,但现在它说的是
namererror:uninitialized constant Order
我正在使用spree,并正在进行回购以调整订单需要根据这些链接进行哪些更改?@belshnickleson97如果你使用spree,模型名称是
spree::Order
Order
@sovalina理解,我已经做了更改。你看了我附加的链接了吗?我不知道如何处理
所有的调整
应该是
Spree::Adjustment
?在Spree的代码中,它看起来像
Spree::Order
有很多:所有的调整
,但指定了class的名称为
Spree::Adjustments
,因此这两个名称不同,这就是为什么我认为我在这个问题上遇到了问题。你到底想查询什么?在我们知道你想做什么之前,很难提供帮助。谢谢你的回复!我尝试了,它确实消除了错误,但现在它说
NameError:uninitialized constant Order
我正在使用spree并开始回购以调整订单需要根据这些链接进行哪些更改?@belshnickleson97如果您使用spree,模型名称是
spree::Order
而不是
Order
@sovalina了解并已进行了更改。您是否接受了l查看我附加的链接?我不确定如何处理
所有调整
应该是
Spree::Adjustment
?在Spree的代码中,看起来像
Spree::Order
有很多:所有调整
,但指定类名为
Spree::adjustments
,因此这两个名称不同的事实是w为什么我认为我在这个问题上遇到了麻烦?你到底想查询什么?在我们知道你想做什么之前,帮助有点困难。太好了!
spree\u adjustments
修复了我的问题。非常感谢@sovalinaPerfect!
spree\u adjustments
修复了我的问题。非常感谢@sovalina