Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 语法错误“;语法错误,意外的tFID,应为关键字“u then”或'';或'\n'&引用;在检查对象是否存在时_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 3 语法错误“;语法错误,意外的tFID,应为关键字“u then”或'';或'\n'&引用;在检查对象是否存在时

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

在Rails应用程序中,我需要检查对象是否存在,如果存在,我需要将该对象的纬度和经度属性分配给两个名为latitude和longitude的外部变量

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)