Rob*_*kin 3 ruby ruby-on-rails
我是Rails的新手,正在创建一个简单的用户身份验证系统,以掌握Rails的工作原理.
我目前正处于创建一些方法,我可以在我的控制器中使用,如下所示:
is_logged? # => true
Run Code Online (Sandbox Code Playgroud)
和
current_user_id # => 6
Run Code Online (Sandbox Code Playgroud)
这些将用于与会话交互,主要是因为我不会在控制器中重复自己.
我在哪里定义这些函数以及如何将它们包含在控制器中?
非常感谢您提供任何帮助.
方法1
您可以在帮助文件里面定义这些方法app/helpers/my_module.rb.您可以在那里创建一个模块,将所有方法放在其中,然后在控件中包含模块以使用这些方法.
module MyMoule
def is_logged?
...
end
end
Run Code Online (Sandbox Code Playgroud)
然后在你的课程中包括模块
class MyClassController < ApplicationController
include MyModule
def my_method
#Use it like this
logged_in = MyModule.is_logged?
end
end
Run Code Online (Sandbox Code Playgroud)
方法2
如果你使用会话相关的东西,你可以随时把它们放在里面application_controller.rb.并且由于您的所有控制器都将继承ApplicationController这些方法.
class ApplicationController < ActionController::Base
def is_logged?
...
end
end
Run Code Online (Sandbox Code Playgroud)
在您的其他控制器中,您可以直接使用它们.
class MyClassController < ApplicationController
def my_method
logged_in = is_logged?
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
336 次 |
| 最近记录: |