Ruby 如何让rails Xeroizer Gem contacts=xero.Contact.all(:where=>;&&x27;Name.Contains(";Peter";)&&x27;)处理插值

Ruby 如何让rails Xeroizer Gem contacts=xero.Contact.all(:where=>;&&x27;Name.Contains(";Peter";)&&x27;)处理插值,ruby,Ruby,Rails Xeroizer文档列出了以下查询方法 contacts = xero.Contact.all(:where => 'Name.Contains("Peter")') 下面的代码可以工作,但不是很有用 @xero_suppliers = @xero_client.Contact.all(:where => 'Name.StartsWith("N")') 这个 导致 QueryParseException:类型>'String'中不存在适用的方法'StartWith'

Rails Xeroizer文档列出了以下查询方法

contacts = xero.Contact.all(:where => 'Name.Contains("Peter")')
下面的代码可以工作,但不是很有用

@xero_suppliers = @xero_client.Contact.all(:where => 'Name.StartsWith("N")') 
这个

导致

QueryParseException:类型>'String'中不存在适用的方法'StartWith' 由以下XML生成: xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance"> 十六,

这个

导致

未初始化的常量AccountingController::Name

这个

导致

QueryParseException:类型“String”中不存在适用的方法“StartWith” 由以下XML生成: xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance"> 十六,


您的工作示例具有正确的语法,因此您应该继续使用它:

@xero_suppliers = @xero_client.Contact.all(:where => 'Name.StartsWith("N")')
似乎您希望使
“N”
零件成为动态的

@xero_suppliers = @xero_client.Contact.all(:where => "Name.StartsWith(\"#{@supplier.name[0]}\")")

这将产生与第一个查询相同的输出。在其他情况下,您会遇到错误,因为您引用的是常量
名称(无引号),或者您将“StartsWith”误键入为“StartsWith”。

当您说“不起作用”“怎么了?它应该是
startsWith
还是
startsWith
?您不需要在
supplier\u name
变量的字符串中转义单引号。嗨,Simone,\@xero\u suppliers\u不工作=@xero\u client.Contact.all(:where=>name.StartsWith(@supplier.name[0..0])\n未初始化常量AccountingController::name
@xero_suppliers_does_not_work = @xero_client.Contact.all(:where => "Name.startsWith(\'#{@supplier.name[0..0]}\')" )
@xero_suppliers = @xero_client.Contact.all(:where => 'Name.StartsWith("N")')
@xero_suppliers = @xero_client.Contact.all(:where => "Name.StartsWith(\"#{@supplier.name[0]}\")")