1

Ruby On Rails 3では、使用する権利があります

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

代わりは

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

?

最初のケースでは、コードが機能しても、Aptana3 はまだエラーであると言っています。2 番目の方法に変更して終了し、エラーが存在すると言います。

なんで?

Rails 3.2.10 ruby​​ 1.9.3p362 (2012-12-25 リビジョン 38607) [x86_64-darwin12.2.1]

4

3 に答える 3

1

それは私が思うRailsとは何の関係もありません、そしてあなたのルビーバージョンとはすべて関係があります。

おそらく、ruby1.9を使用するようにAptanaを構成する必要があります。しかし、奇妙なことに、2番目のバージョン(presence: true)でも新しい構文を使用しているため、問題は別の場所にある可能性があります...

しかし、要点は、最初のバージョンが使用すべきものであるということです。

于 2013-01-15T17:10:36.000 に答える
1

IDE が正しいと考えるものは、実際に正しいものとは異なる場合があります。

たとえば、IntelliJ では、新しいハッシュ構文を取得するために Ruby 言語レベルを設定する必要があります。

于 2013-01-15T17:08:32.740 に答える
0

1 つ: 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

ラムダ、Proc などの場合も同様です。基本的に、ブロックを指定する必要がある場合はどこでも。

于 2013-01-15T19:31:51.190 に答える