我对Rails相对较新,正致力于创建一个简单的用户身份验证系统,以掌握Rails的工作原理。
我目前正处于创建一些可以在我的控制器中使用的方法的地步:
is_logged? # => true
和
current_user_id # => 6
这些将用于与会话进行交互,主要是因为我不会在控制器中重复自己。
我将在哪里定义这些函数以及如何将它们包含在控制器中?
非常感谢您提供任何帮助。
答案 0 :(得分:7)
方法1
您可以在app/helpers/my_module.rb
内的帮助文件中定义这些方法。您可以在那里创建一个模块,将所有方法放在其中,然后在控件中包含模块以使用这些方法。
module MyMoule
def is_logged?
...
end
end
然后在你的课程中包含模块
class MyClassController < ApplicationController
include MyModule
def my_method
#Use it like this
logged_in = MyModule.is_logged?
end
end
方法2
如果您使用与会话相关的内容,则可以将它们放在application_controller.rb
内。由于您的所有控制器都将继承ApplicationController
,因此您可以使用这些方法。
class ApplicationController < ActionController::Base
def is_logged?
...
end
end
在您的其他控制器中,您可以直接使用它们。
class MyClassController < ApplicationController
def my_method
logged_in = is_logged?
end
end