Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 Ruby on Rails3';:';vs'=&燃气轮机';_Ruby On Rails 3_Aptana - Fatal编程技术网

Ruby on rails 3 Ruby on Rails3';:';vs'=&燃气轮机';

Ruby on rails 3 Ruby on Rails3';:';vs'=&燃气轮机';,ruby-on-rails-3,aptana,Ruby On Rails 3,Aptana,在RubyonRails3中,正确使用 validates :name, presence: true, length: { maximum: 50 } 反而 validates :name, presence: true, :length => { maximum: 50 } ? 在第一种情况下,即使代码正常工作,Aptana3仍然表示存在错误,我必须更改为第二种方法,以使其退出,并表示存在错误 为什么? 轨道3.2.10 ruby 1.9.3p362(2012-12-25修订版

在RubyonRails3中,正确使用

validates :name,  presence: true, length: { maximum: 50 }
反而

validates :name,  presence: true, :length => { maximum: 50 }
?

在第一种情况下,即使代码正常工作,Aptana3仍然表示存在错误,我必须更改为第二种方法,以使其退出,并表示存在错误

为什么?

轨道3.2.10
ruby 1.9.3p362(2012-12-25修订版38607)[x86_64-darwin12.2.1]

IDE认为正确的可能与实际正确的不同


例如,IntelliJ需要设置Ruby语言级别以获得新的哈希语法。

我认为这与Rails无关,而与您的Ruby版本有关

您可能需要配置Aptana以使用ruby 1.9。但奇怪的是,您在第二个版本中也使用了新语法(
presence:true
),因此问题可能在其他地方


但问题是,第一个版本是您应该使用的。

一件事:它与Aptana无关。但它不应该给出警告/错误。 Yoy可能安装了多个版本的ruby。确保Aptana使用的是ruby>=1.9

要列出系统上安装的所有ruby版本,请执行以下操作:

ruby -v 

rvm list (if used rvm to install rubies)
在ruby 1.9之前,哈希声明如下:

:key => "value"
从1.9版开始,为减少打字量,该速记已提供:

key: "value"
但是,在使用rails时,我发现了一些不规则情况,如:

validates :some_attr, presence: true, :if => { block }  # this works
但这并不是:

validates :some_attr, presence: true, if: { block }  # this DOES NOT works

lambda、Proc等的情况也是如此。基本上,我们需要指定一个块。

新语法仅适用于对符号使用哈希时,这可能是问题的一部分。@MichaelCurrent所有这些键都是符号。这是正确的。新的散列语法显然在Aptana中有一个bug(或者至少有)。请参阅以下论坛帖子:@mbaumbach有趣;可惜已经一年了,页面上的问题链接被破坏了:(唉,互联网。我怀疑“错误”是一个简单的(因为解析Ruby很简单)解析值类型的问题。