Ruby on Rails私有方法?

hel*_*llo 12 methods ruby-on-rails private-methods ruby-on-rails-3

如果我正在写一个私有方法,那么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 
Run Code Online (Sandbox Code Playgroud)

这是否意味着signed_in_usercorrect_user私人?还是只是signed_in_user?这是否意味着每当我需要编写私有方法时,它应该在我的文件的末尾?

MrT*_*rus 11

是的,private关键字后面的每个方法都是私有的.如果要更改回定义非私有方法,可以使用其他关键字,例如publicprotected.

请参阅在Ruby中放置私有方法的位置?


Rai*_*dal 4

是的,下面的所有方法private都是私有的。通常,您确实会在文件底部找到这些方法。

但是您可以通过编写另一个关键字来“阻止”这种情况,例如protected,然后后面的所有方法都将受到保护。