質問

告白:まだ利用 民間公開 視認性も!

っているような気がすことは悪いことであると考えていた。がレールだけではなさそうにしています。

は誰もいえるレールと大きな間違いを使用しない 保護 視認性?

役に立ちましたか?

解決

更新 --をご覧くださいコメントとリンク 真の説明 protected/private Ruby.した深部の偏見が残っJava日前るということでもあります。の重要な部分を残したの私の答えは、コントローラーされていないメソッドの行動すべきでない public 少なくともお路を保護する必要がありました。

単一テーブルの継承がえの場合 protected は、モデル層としての共通の遺産である。

のコントローラー、ヘルパーで定義されている方法に ApplicationController 示されるべきであるとして protected --あれば private その他のコントローラがアクセスできないしだい public レールの処理として行動します。

個人的には、私が使っていクラスの継承により多くの友人や同僚でも、レールに願います。を使用していない(とから私のJava日)、いっそう引き立て protected すべてのヘルパーの手法を繰り返してリカバリーに努めまで(通常私ためのクラス--なん本当に恥ずかしい、そしてマークで private. :)

他のヒント

私は単一テーブル継承を持っている。

クラスPerson

そして、私は学生と教師のための共通ですプライベートメソッドを実装するために保護されたメソッドを使用します

class Person < AR::base
  def self.find(*args)
    reject_leaves(super(*args))
  end
protected
  def self.reject_leaves(target) #like a private in Teacher and Student
    case target
      when Array target.select{|t| reject_leaves(t)}
      when Person (target.leave_date < Date.today ? target : nil)
      else target
    end
  end
end

免責事項:私はあなたのポイントを取得するためにここに簡略化されていることを、私はあなたのケースを表示するために、ここで使用しますが、私は、より複雑な風景を持っている機能を実装するなど、被害妄想ACT-およびその他のようなプラグインがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top