Rails新手帮助

时间:2009-09-02 13:59:47

标签: ruby-on-rails geocoding

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

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

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

这非常令人沮丧!

3 个答案:

答案 0 :(得分:4)

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

这应该有用。

你做错了什么:

  • 你要求:所有而不仅仅是:第一个终端,你得到了一个数组
  • 数组中的每个条目都是一个终端实例,只选择了一个属性(full_address)

答案 1 :(得分:2)

呃,为什么不呢:

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

如果找不到id,这将引发错误。

答案 2 :(得分:-1)

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

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

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