2011-02-25 74 views
0

在我的RoR应用程序中,我有一个rjs文件,它填充了一个字段,其ID为"submission_references",在我的主窗体中找到。ruby​​ on rails - 通过rjs中的dbase记录循环

RJS代码:

page[:submission_references].value = @references.each do |reference| 
             reference.NAME 
             end 

的问题是,不是显示检索数据库值,下面是正显示在'submission_references'领域:

[object Object],[object Object] 

但是如果我把像@references[0].NAME ,第一个检索到的记录的名称显示在该字段中。

请有人可以为我阐明这一点。

许多非常感谢您的宝贵帮助

+0

可以尝试“在@references参考”的循环方式,让我知道,如果它的工作 – gkaykck 2011-02-25 14:04:48

+0

:)谢谢你的建议,我想:(@ references.map {|引用| reference.NAME})。加入(“,”),它似乎工作正常。 – Kim 2011-02-25 14:20:19

回答

2

尝试:

page[:submission_references].value = 
    (@references.map {|reference| reference.NAME}).join(", ") 

一点解释:在你的代码中已经分配给valueeach环,它返回对象的原始数组(的结果而不是评估块内)。这就是为什么你得到那个[object Object],[object Object]字符串。在另一侧上map迭代的集合,并且其评估为集合中的每目标块。评估值然后以数组而不是原始对象的形式返回。由于NAME是一个字符串,可以使用join(", ")到阵列中的每个元素加入到了“”串concacted一个字符串。

+0

OMG,谢谢sooo klew:)...我的代码现在工作得很好。干杯! – Kim 2011-02-25 14:06:10