【发布时间】:2015-11-13 19:04:45
【问题描述】:
这是来自我的 application_controller.rb
private
def current_user
return unless session[:user_id]
@current_user ||= User.find_by_id(session[:user_id])
end
helper_method :current_user
这是来自我的 cmets_controller.rb 的创建方法
def create
@user = User.find(params[:user_id])
@user.comments.create(:user_id => @user.id, :commenter => current_user.login, :body => params[:comment][:body])
respond_to do |format|
format.js
format.html { redirect_to(@user, :notice => 'Comment was successfully created.') }
end
end
调用时会说:
nil:NilClass 的未定义方法 `login'
什么会阻止 current_user 被发现?
【问题讨论】:
-
将其移至私有上方后尝试,私有方法只能在同一类中调用。
-
在私有之上移动没有帮助
-
@RahulSingh 私有方法也可以在子类中调用。这是 Ruby 与其他语言的区别。
标签: ruby-on-rails ruby-on-rails-4.1