1

hereから取得した次の例を考えると:

class Post < ActiveRecord::Base
  attr_accessible :content, :name, :title

  validates :name,  :presence => true
  validates :title, :presence => true,
                    :length => { :minimum => 5 }
end

クラスに基づいてクラスを作成していることを理解していますActiveRecord::Base。次の行では、? はどうなっていattr_accessible :content, :name, :titleますか? 変数を宣言しているのか、メソッドを作成しているのか、それとも呼び出しているのか? 式はどのようなもの:some_variableですか?コロンは何のためにあるのですか?誰かがここで何が起こっているのかを基本的な理解で説明できますか?

4

2 に答える 2

3

attr_accessible方法です。

[It] は、一括割り当てによって設定できるモデル属性のホワイト リストを指定します。

その引数は、シンボルの配列です (:たとえば、ビジネス:contentはシンボルです)。

このメソッドは、シンボルとして表現されたプロパティのリストを反復処理し、一括割り当てしても問題ないプロパティのリストにそれらを追加します。

ほとんどの Ruby 書籍では、シンボルについて説明しているはずです。

于 2013-01-18T19:52:12.247 に答える
0

attr_accessibleActiveRecord::Base から継承されたメソッドです。これは、シンボルを渡すメタ メソッドです (クラスの属性として名前を付ける必要があります)。それが行うことは、それらにアクセスできるようにすることです。そのため、別の領域でposts.contentは、他の方法で利用できるようになりました。

validatesデータベースへの保存を許可する前に、特定の属性を確認します。条件が false と評価されると、エラーがスローされます。ここでも、最初に属性と同じ名前のシンボル (この場合は:name) を渡し、次にチェックする条件のハッシュ (この場合は `:presence => true') を渡します。

于 2013-01-18T19:58:03.527 に答える