13

私がプライベートメソッドを書いている場合、Rails は単語の下にあるすべてのメソッドprivateがプライベートになると考えていますか? または、最初の方法でのみプライベートにすることになっていますか?

  private

    def signed_in_user
      redirect_to signin_url, notice: "Please sign in." unless signed_in?
    end

    def correct_user
      @user = User.find(params[:id])
      redirect_to(root_path) unless current_user?(@user)
    end 

signed_in_userとはどういう意味correct_userですか? または単にsigned_in_user?これは、プライベート メソッドを記述する必要があるときはいつでも、ファイルの末尾に配置する必要があるということですか?

4

5 に答える 5

12

はい、privateキーワードの後の各メソッドは非公開になります。非プライベート メソッドの定義に戻したい場合は、publicor などの別のキーワードを使用できますprotected

Ruby でプライベート メソッドを配置する場所を参照してください。

于 2013-05-12T17:47:34.440 に答える
4

または、この方法でアクセス制御を定義して、メソッドをアクセス制御関数 (public、protected、private) への引数としてリストすることもできます。

class SomeClass
    def method1
        ...
    end

    def method2
        ...
    end

    def method3
        ...
    end
    # ... more methods def

    public    :method1, method4
    protected :method3
    private   :method2
end
于 2013-11-26T14:37:45.233 に答える
4

はい、以下のすべてのメソッドprivateはプライベートです。通常、これらのメソッドはファイルの一番下にあります。

ただし、次のような別のキーワードを記述してこれを「停止」することができます。これによりprotected、後続のすべてのメソッドが保護されます。

于 2013-05-12T17:46:34.093 に答える