2012-06-04 57 views
0

基于我一直在阅读的内容,我知道这并不是非常困难,但我不断收到错误消息。一般来说,这是一个意想不到的标识符。将字符串数组转换为对象数组时遇到问题-JSON.parse

https://gist.github.com/2869105

要点显示所有相关的信息,但我会在这里的主要JS。

- content_for :javascripts do 
    - cache('search_autocomplete') do 
    :javascript 
     $(function(){ 
     var products = #{auto_complete_products.to_json}; 
     $("#keywords").autocomplete(products,{ 
     appendToElement: ".autocomplete" 
      }); 
     }); 

这是它如何设置。我想将这个字符串数组转换为一个对象数组,因为我将在自动完成时添加一个图像以及当前名称。

的Rails 3.0.7 的Mac OS X Lion的 HAML/SASS

注意的要点第二个文件是我尝试过,但没有奏效。

任何帮助,非常感谢。谢谢!

回答

0

我使用这种自动完成功能:$('#keywords').autocomplete({source: array_or_hash_or_path})

所以我想你需要的东西是这样的:

$("#keywords").autocomplete({source: #{auto_complete_products.to_json}}) 
+0

嗨JDOE,我很欣赏的答案。不过,自动完成并不是这里的问题。我只需要它,因此它将auto_complete_products作为对象返回,而不是字符串。并且相当肯定它与JSON.parse有关,只是无法获得正确的语法。 – DnfD

+0

我贴了一个100%工作的例子。如果'auto_complete_products'返回一个字符串数组,那么调用'to_json'就足够了。只需将它作为'source'“参数”传递给自动完成调用即可。我已经改变了我的代码片段。 – jdoe

+0

不好意思,但我只是没有看到你基本上做了什么不同。在我的情况下,有产品,商家和产品来源(和图像来自产品来源)。产品和商家名称被合并和唯一地排序,现在我需要以某种方式绑定图像。我正在用'product_source_image = ProductSource.find_by_name(“Target”)。image(:thumb)'尝试。然后,当我尝试在这里添加product_source_image(product_names + merchant_names + product_source_image).order(:name)''我得到'不能将String转换为Array'错误消息。不要浪费你的时间。 – DnfD

相关问题