Подтвердить что ты не робот

Ruby on 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? Означает ли это, когда мне нужно писать частные методы, это должно быть в конце моего файла сейчас?

4b9b3361

Ответ 1

Да, каждый метод после ключевого слова private будет закрыт. Если вы хотите вернуться к определению неличных методов, вы можете использовать другое ключевое слово, например public или protected.

Смотрите Где разместить частные методы в Ruby?

Ответ 2

Да, все методы под private являются закрытыми. Обычно вы найдете эти методы в нижней части файла.

Но вы можете "остановить" это, написав другое ключевое слово, например protected, а затем все последующие методы будут защищены.

Ответ 3

Или вы также можете определить свой контроль доступа таким же образом, указав свои методы в качестве аргументов функций управления доступом (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

Ответ 4

Как писали другие, каждый метод, следующий за ключевым словом private, является закрытым в Ruby. Это простой синтаксис Ruby и не имеет ничего общего с рельсами.

private
  .....
def pvt_meth_1
  .....
end

def pvt_meth_2
  .....
end

public

def pub_meth_1
  ......
end

Ответ 5

Он работает так же, как c++ private, public tag, так что да, оба они будут приватными