Ruby on rails 3 语法错误“;语法错误,意外的tFID,应为关键字“u then”或'';或'\n'&引用;在检查对象是否存在时
在Rails应用程序中,我需要检查对象是否存在,如果存在,我需要将该对象的纬度和经度属性分配给两个名为latitude和longitude的外部变量Ruby on rails 3 语法错误“;语法错误,意外的tFID,应为关键字“u then”或'';或'\n'&引用;在检查对象是否存在时,ruby-on-rails-3,Ruby On Rails 3,在Rails应用程序中,我需要检查对象是否存在,如果存在,我需要将该对象的纬度和经度属性分配给两个名为latitude和longitude的外部变量 my controller code def query if ( Coordinates.where(city :params[:show]).exists?) equal? 1) then a=Coordinates.where(city: params[:sh
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”。任何人都可以帮我解决这个问题,提前谢谢我有几句话要说:
- 在Ruby中,if的语法通常是(没有then)
- 其中返回一个ActiveRecord关联,因此它是一个集合,因此您不能调用
。尝试a.latitude
坐标。where(city:params[:show])。首先是
之类的东西
- 您是否定义了名为
的方法?如果没有,则至少缺少一个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
- 这一行似乎是问题所在:
( Coordinates.where(city :params[:show]).exists?) equal? 1)
你到底想知道什么?在这种情况下,最好用文字向我们解释,因为您的代码看起来很混乱。Ayonix有一个查询方法的工作示例,但我不确定该方法是否准确描述了您想要知道的内容。这就像我想检查用户是否输入,我想检查表中是否存在,如果存在,我想将表的纬度和经度属性分配给外部变量纬度和经度。纬度和经度是表格的两个属性,它表示“无法将smbol转换为整数”。你能帮帮我吗?你能告诉我具体发生在哪里吗?我输入a=Coordinates.where(city:params[:show])的那一行,那么我猜你使用的是Ruby版本1.8.7或<1.9。哈希1.9之前的语法是
:key=>value
,而不是key:value
。您可以尝试将该行更改为a=Coordinates.where(:city=>params[:show])
并查看这是否解决了该问题。我仅使用1.9.2版。是否可以先使用to_I转换为整数,然后再赋值?
( Coordinates.where(city :params[:show]).exists?) equal? 1)