ruby on rails - 循环遍历rjs中的dbase记录

时间:2011-02-25 13:58:26

标签: ruby-on-rails

在我的RoR应用程序中,我有一个rjs文件,它填充了一个在我的主表单中找到id为"submission_references"的字段。

RJS代码:

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

问题是,不是显示检索到的数据库值,而是在'submission_references'字段中显示以下内容:

[object Object],[object Object]

但是,如果我输入@references[0].NAME之类的内容,则会在字段中显示第一个检索到的记录名称。

请允许有人为我阐明这一点。

非常感谢你的宝贵帮助

1 个答案:

答案 0 :(得分:2)

尝试:

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

一点解释:在您的代码中,您已经为value分配了each循环的结果,该循环返回原始对象数组(不是评估的内部块)。这就是你获得[object Object],[object Object]字符串的原因。另一方面map遍历集合,它为集合中的每个对象计算块。然后,在数组中返回评估值而不是原始对象。由于NAME是一个字符串,因此您可以使用join(", ")将数组的每个元素连接成一个用“,”字符串连接的字符串。