`
hideto
  • 浏览: 2682655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

实战Hilog笔记三:@current_user/logged_in?/require_login/editable?

阅读更多
1,在ApplicationController里添加几个辅助方法:
class ApplicationController < ActionController::Base
  session :session_key => '_hilog_session_id'
  before_filter :load_defaults
  helper_method :logged_in? 

  protected

    def load_defaults
      @current_user =
        if logged_in?
          User.find(session[:user_id])
        else
          nil
        end
    end
    
    def logged_in?
      session[:user_id]
    end
    
    def require_login
      redirect_to(new_session_url(:go_after => request.request_uri)) and return false unless session[:user_id]
    end

end

load_defaults得到当前登录的用户@current_user
helper_method让logged_in?方法可以在rhtml页面里使用
require_login是一些需要登录权限才能操作的action的before_filter

2,在Topic模型类里添加editable_by?方法:
class Topic < ActiveRecord::Base
  belongs_to :user
  
  def editable_by?(account)
    account && (account.id == user.id )
  end
  
end

这样可以在rhtml页面和controler里判断topic是否可以被@current_user编辑和删除
分享到:
评论
1 楼 hideto 2007-07-13  
3,SessionController里控制登录后url转发:
class SessionController < ApplicationController

  def new
    session[:go_after] = params[:go_after] if params[:go_after]
  end
  
  def create
    if @user = User.authenticate(params[:loginId], params[:password])
      session[:user_id] = @user.id
      redirect_to (session[:go_after] || params[:go_after] || blog_path(@user.loginId))
    else
      flash[:notice] = "用户名或密码不正确."
      render :action => 'new'
    end
  end

  def destroy
    session.delete
    flash[:notice] = "您已经注销."
    redirect_to home_path
  end

end

相关推荐

    基于小程序的学习自律养成小程序源代码(java+小程序+mysql+LW).zip

    本微信学习自律养成小程序的设计与实现有管理员和用户两个角色。管理员功能有个人中心,用户管理,学习计划管理,计划打卡管理,计划历史管理,留言板管理,系统管理等。用户功能有注册登录,学习计划,计划打卡,计划历史,留言板管理,留言板等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具

    关于开展研究性学习课程的通知 (2).doc

    关于开展研究性学习课程的通知 (2).doc

    【国富期货-2024研报】USDA美豆当周出口检验162万吨符合预期CONAB巴西大豆播种率94.1%.pdf

    【国富期货-2024研报】USDA美豆当周出口检验162万吨符合预期CONAB巴西大豆播种率94.1%.pdf

    基于小程序的大学校园二手书籍拍卖小程序源代码(java+小程序+mysql).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具

    深圳建设工程集团施工现场审计管理规定.docx

    深圳建设工程集团施工现场审计管理规定

    Qt进阶之Q-ENUM、Q-FLAG、Q-DECLARE-FLAGS、Q-DECLARE-OPERATORS-FOR-FLAGS相关宏的深度探秘与点亮高效编程之路

    在`Qt`的广袤编程世界里,隐藏着如魔法般强大的元素,那便是`Q_ENUM`、`Q_FLAG`以及与之紧密相连的`Q_DECLARE_FLAGS`、`Q_DECLARE_OPERATORS_FOR_FLAGS`。它们犹如神秘的咒语与符文,一旦掌握,便能点亮高效编程之路。无论是构建复杂的图形界面,还是处理底层的数据逻辑,这些`Qt`进阶魔法都将赋予开发者全新的力量,让代码更加简洁、灵活且美观。

    文件网络安全学习视频我爱i

    文件网络安全学习视频我爱i

    【JCR一区级】基于matlab豪猪算法CPO-CNN-BiLSTM-Attention故障诊断分类预测【Matlab仿真 5442期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    基于小程序的微信点餐系统小程序源代码(java+小程序+mysql+LW).zip

    本微信点餐系统小程序管理员功能有个人中心,用户管理,菜品管理,新上菜品管理,预定订单管理,活动信息管理,用户评价管理,系统管理,订单管理等。用户功能有个人中心,订购菜品,我的订单,我的收藏,评价菜品等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具

    本地磁盘E的文件使用查找到的

    本地磁盘E的文件使用查找到的

    elasticsearch-analysis-dynamic-synonym-8.16.2

    解压之后在elasticsearch的jdk\conf\security\java.policy文件下新增这段,然后重启es就可以使用了 permission java.net.SocketPermission "*", "connect,resolve"; permission java.lang.RuntimePermission "setContextClassLoader"; permission java.lang.RuntimePermission "accessDeclaredMembers"; permission java.lang.RuntimePermission "createClassLoader"; permission java.security.SecurityPermission "putProviderProperty.MySQLScramSha1Sasl"; permission java.security.SecurityPermission "insertProvider";

    【CNN回归预测】基于matlab金豺算法优化卷积神经网络GJO-CNN风电数据预测(多输入单输出)【Matlab仿真 5279期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    QT项目之中国象棋人工智能

    中国象棋项目c++可视化qt

    基于知识图谱的推荐算法-KGCN实现源码+文档+全部资料.zip

    【资源说明】 基于知识图谱的推荐算法-KGCN实现源码+文档+全部资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    java毕设项目之基于springboot技术的美食烹饪互动平台的设计与实现(完整前后端+说明文档+mysql+lw).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3

    【JCR一区级】基于matlab鲸鱼算法WOA-CNN-BiLSTM-Attention故障诊断分类预测【Matlab仿真 5451期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    基于小程序的微信小程序打印室预约源代码(java+小程序+mysql+LW).zip

    本微信小程序打印室预约有管理员和用户两个角色。管理员功能有个人中心,用户管理,附近打印店管理,文件打印管理,当前预约管理,预约历史管理,打印记录管理,系统管理等。用户功能有搜索附近打印店,打印预约,当前预约,预约历史,我的收藏,在线客服等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具

    STM32F407连接EC20-4G模块实现单片机修改4G模块串口波特率的功能.zip

    1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用KEIL 标准库开发,当前在STM32F407运行,如果是STM32F407其他型号芯片,依然适用,请自行更改KEIL芯片型号以及FLASH容量即可。 3、软件下载时,请注意keil选择项是jlink还是stlink。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。

    【JCR一区级】基于matlab灰狼算法GWO-CNN-BiLSTM-Attention故障诊断分类预测【Matlab仿真 5446期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

Global site tag (gtag.js) - Google Analytics