1

我有一个数据库查询,它返回一个包含地址的变量。

@terminal_address = Terminal.find(:all, :select => :full_address ,:conditions => ["id = ?" , params[:id]])

当我将其传递@terminal_address给我的地理编码代码时,由于数据的传递方式而出错。如果我用引号中的地址替换变量,它工作正常。如何从变量中提取字符串?

这非常令人沮丧!

4

3 回答 3

4
@terminal_address = Terminal.find(:first, :conditions => ["id = ?" , params[:id]]).full_address

这应该有效。

你做错了什么:

  • 您要求 :all 而不是仅 :first of Terminals,您获得了一个数组
  • 数组中的每个条目都是一个终端实例,只选择了一个属性(full_address)
于 2009-09-02T14:06:15.910 回答
2

呃,为什么不只是:

Terminal.find_by_id!(params[:id], :select => :full_address).full_address

当找不到 id 时,这将引发错误。

于 2009-09-03T07:34:24.593 回答
-1

@terminal_address是类的一个实例Terminal。因此,您将需要获取包含地址信息的该类的属性。在这种情况下,该字段似乎被命名为 'full_address' 所以类似于:

Terminal.find(:first, :conditions => ["id = ?" , params[:id]]).full_address

应该返回完整的地址字符串

于 2009-09-02T14:08:44.130 回答