在我的Rails应用程序中,我需要检查对象是否存在,如果存在,我需要将该对象的纬度和经度属性分配给两个名为纬度和经度的外部变量。
my controller code
def query
if ( Coordinates.where(city :params[:show]).exists?) equal? 1) then
a=Coordinates.where(city: params[:show])
latitude=a.latitude
longitude=a.longitude
end
但是当我运行程序在浏览器中我遇到语法错误,尽管我多次尝试更改语法我得到的错误是“语法错误,意外的tFID,期待关键字_then或';'或'\ n'“。任何人请帮助我如何解决这个问题,提前谢谢
答案 0 :(得分:2)
我有几条评论:
在Ruby中,if的语法通常是(没有那么)
if condition
code
end
返回ActiveRecord关联,因此它是一个集合,因此您无法调用a.latitude
。试试Coordinates.where(city: params[:show]).first
或类似的东西。
您定义了一个名为equal?
的方法吗?如果不是,则至少缺少.
。
if语句或多或少没用。
def query
a = Coordinates.where(city: params[:show])
b = a.first
if a.count == 1
latitude = b.latitude
longitude= b.longitude
else
# do something else
end
end
答案 1 :(得分:1)
这条线似乎是问题所在:
( Coordinates.where(city :params[:show]).exists?) equal? 1)
你到底想知道什么?在这种情况下,最好用文字向我们解释,因为你的代码看起来很混乱。 Ayonix有一个查询方法的工作示例,但我不确定该方法是否准确描述了您想知道的内容。