如何将会话变量传递给 RoR 中的模型?

2023-12-06

我之前在应用程序中使用了全局变量来传递信息。但我遇到了一个问题,感谢这里的每个人建议我将这些数据存储在数据库的会话中。

我尝试了一下,但发现无法访问Model中的session变量。我用谷歌搜索知道这是模型的正常行为,RoR 不会将会话变量传递给模型。

所以,我想在验证中使用该会话变量以及控制器......

  1. 如何传递的值 会话变量进入模型?或者

  2. 我的还有其他方法吗 用例?我需要一个变量存储 一个值,这是所有都需要的 MVC,并且应该是独立的 不同并发用户之间。

感谢大家。 :)


如果我理解正确的话,会话变量会改变您验证模型的方式。我相信正确的解决方案如下:

class Blog < ActiveRecord::Base
  attr_accessor :validate_title

  validate_presence_of :title, :if => :validate_title
end

class BlogsController < ApplicationController
  def new
    @blog = Blog.new
    @blog.validate_title = session[:validate_title]
  end
end

该代码尚未经过测试,但这就是想法。 if 参数可以是方法的名称,您可以在其中执行任何您想要的操作。如果需要,您可以使用各种验证模式。例如:

class Blog < ActiveRecord::Base
  attr_accessor :validation_mode

  validate_presence_of :title, :if => :validate_title

  def validate_title
    validation_mode == "full" or validation_mode == "only_title"
  end
end

class BlogsController < ApplicationController
  def new
    @blog = Blog.new
    @blog.validate_mode = session[:validate_mode]
  end
end

欲了解更多信息,请阅读验证指南.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将会话变量传递给 RoR 中的模型? 的相关文章

  • 如何在 Haml 中编写 if 条件?

    怎么写if and if elseRuby on Rails 应用程序的 Haml 语句 HAML 是基于缩进的 解析器可能很棘手 在 Haml 中不需要使用 end 请改用缩进 在 Haml 中 只要在 Ruby 计算命令之后增加缩进 就
  • 程序“gem”可以在以下软件包中找到

    我正在 Virtual Box Ubuntu 13 10 上安装 Ruby on Rails 以下是步骤 ruby v gt 程序 ruby 可以在以下软件包中找到 尝试 sudo apt get install 来源 我的帐户 gt 好的
  • ActiveRecord oracle_enhanced 适配器无法加载 ruby​​-oci8 库

    rails g scaffold失败 但 oci 脚本和 irb 数据查询有效 无法弄清楚出了什么问题 rails g scaffold table field1 integer field2 string invoke active re
  • 每次使用会话来获取/设置对象属性

    我尝试搜索这个 但我什至不知道如何用它来搜索 我试图做的是有一个类 每次我访问它来更改它时 我实际上都是从会话中获取和设置值 这是我正在尝试做的事情 到目前为止我所做的事情 public class example public int p
  • Rails 资产管道:CSS 无效

    我正在尝试使用http designshack net articles css build an animated photo wall with css http designshack net articles css build a
  • 从 ActiveRecord 获取表名

    I used ActiveRecord Base set table name在动态创建的 ActiveRecord 类上设置我的表名称 现在我需要知道稍后如何获得该值 api 文档没有提及如何执行此操作 另外 我无法从 ActiveRec
  • Rails f.check_box 设置选中/未选中值

    所以我在 Rails 中得到了一个带有复选框的表单助手 我希望该复选框在选中或取消选中时具有 thatvalue 或 thisvalue 值 我还没有找到如何设置它的地方 f check box field 我发现了类似的东西 但它不起作用
  • 部署到 Heroku 时使用 Rails Secrets.yml 且无需将密钥暴露给公共存储库的分步说明

    我正在使用 Rails 4 1 1 和 ruby 2 0 0 我目前已经忽略了 github 的 gitignore 中的 Secrets yml 文件 秘密 yml development secret key base numb3r57
  • 使用Rails UJS,如何从函数提交远程表单

    我正在使用Rails UJS 我有一个表单设置来进行远程提交 如下所示
  • 如何使用 Ruby 2.7.0 修复 Rails 的警告消息

    有没有人解决这个问题Ruby 2 7 0 I used rbenv并安装了 Ruby v2 7 0 然后使用创建了一个 Rails 项目Rails v6 0 2 1 目前 通过运行之一 rails s rails s u puma rail
  • 是否可以让 Capistrano 通过反向 SSH 隧道进行结帐?

    我正在开发一个驻留在公共主机上的应用程序 但我必须将其源代码保存在公司防火墙后面的 Git 存储库中 我越来越very厌倦了通过缓慢的部署scp 复制整个存储库并在每次部署时通过 SSH 传送 并且希望远程主机只需执行git pull更新
  • 用于 RESTful 轨道应用程序的简单面包屑

    是否有任何辅助方法 除了默认 Rails 面包屑导航 http wiki rubyonrails org rails pages Breadcrumbs 为特定页面动态生成面包屑导航 而无需在 RESTful 应用程序中传递琐碎的参数 也就
  • WebSphere 中跨 JVM 的会话复制

    我们建立了一个基础设施 其中网络服务器是集群的 而应用程序服务器不是 Web 服务器根据循环策略将请求路由到应用程序服务器 在这种情况下 一个应用程序服务器中可用的会话数据在另一应用程序服务器中不可用 无论如何 是否可以使来自第一个应用程序
  • 错误“未初始化常量 AWS (NameError)”

    它说 AWS 未初始化 我正在使用 aws sdk core gem 我尝试使用 aws sdk gem 代替 问题仍然存在 这是initializers aws rb 文件 AWS config access key id gt ENV
  • 使用 Minitest 测试自定义验证器

    我有多个带有电子邮件验证的模型 因此 我将验证提取到自定义验证器中 我按照以下教程做到了这一点导轨指南 http guides rubyonrails org active record validations html custom va
  • Rails 3 - “无法解析 Yaml”

    我不知道我做错了什么 我尝试运行 rails c 但它只是给了我一个错误 10 分钟前它还在工作 C Ruby192 lib ruby 1 9 1 psych rb 148 in parse couldn t parse YAML at l
  • 在 servlet 会话和 java.io.NotSerializedException 中保存对象

    SEVERE IOException while loading persisted sessions java io WriteAbortedException writing aborted java io NotSerializabl
  • 数据库分片和 Rails

    在 Rails 中处理分片数据库的最佳方法是什么 分片应该在应用层 活动记录层 数据库驱动层 代理层还是其他层处理 各自的优点和缺点是什么 FiveRuns 有一个名为的 gem数据结构 https github com bpot data
  • 自定义通用 Rails 错误消息

    我们的 Rails 应用程序被设计为链接到多个客户端数据库的单个代码库 根据子域 应用程序确定要连接到哪个数据库 我们使用液体模板为每个客户定制演示文稿 我们无法为每个客户定制通用的 我们很抱歉 出了点问题 消息 谁能推荐一种方法让我们能够
  • 回滚后是否应该删除迁移

    我对 ruby 和 Rails 相当陌生 刚刚开始了解迁移 我的问题是回滚后删除迁移的最佳实践或正确时间是什么 到目前为止 我读到的内容是回滚后是否删除迁移的观点问题 但是在团队中工作时删除迁移是否有任何重大影响 以及保留迁移文件相对于删除

随机推荐

  • python:randint, choice 随机数据生成

    randint choice py coding utf 8 在算法竞赛中 用 python 编写随机数据生成器是太合适了 下面代码生成一个长度在5 10 恰好包含一个大写字母 其它字符为小写字母的字符串 from random impor
  • 若依微服务版本代码生成对sqlserver的支持

    目录 前言 一 后端 1 pom依赖 2 yml配置配置数据源 3 新增service impl 注意 4 新增mapper接口
  • 数组实现循环队列(增设队列大小size)

    目录 一 前言 1 如何实现循环 2 如何判断队列为空 3 如何判断队列为满 二 循环队列的结构定义 三 循环队列的创建及其初始化 四 入队 五 出队 六 取队头元素 七 取队尾元素 八 循环队列判空 九 循环队列判满 十 循环队列销毁 一
  • 戴尔工作站测试VMware虚拟机使用 RTX4090显卡

    1 随着人工智能和AI的发展 显卡运算获得越来越广发的运用 nvidia必然是首选 如何将nvidia显卡应用于虚拟机成为一个新的需求 好处是不同虚拟机可以轮流使用显卡进行计算 缺点是不能同时使用 本次需求为硬件为戴尔工作站 里面装两块 R
  • 从小米14安装不上应用说起【适配64位】

    一 原因 某天早上 同事突然对我说我换了小米14pro手机但是安装不了公司的打卡软件 怎么办呀 一时间 我也不知道原因 看到给我发的安装不上的截图陷入了沉思 随即打开在git仓库里找到这个项目 到本地编译打开 开始思考解决办法 作者 风罗伊
  • 网络安全(一)--网络环境构成,系统的安全

    2 网络攻防环境 目标 了解攻防环境构成 了解入侵检测系统 平台 的部署位置 2 1 环境构成 2 1 1 环境框图 一个基本的网络攻防实验环境包括 靶机 攻击机 入侵检测分析系统 网络连接四部分组成 一个基础的网络攻防实验环境需要如下组成
  • PyQt6 QComboBox下拉组合框控件

    锋哥原创的PyQt6视频教程 2024版 PyQt6 Python桌面开发 视频教程 无废话版 玩命更新中 哔哩哔哩 bilibili 2024版 PyQt6 Python桌面开发 视频教程 无废话版 玩命更新中 共计34条视频 包括 20
  • 计算机毕设ssm二手教材交易平台的设计与实现6k3cy9 独有(附源码)

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP mybatis Ma
  • 大数据的技术栈-逐步完善

    目录 1 hadoop a HDFS分布式文件系统 b Yarn集群资源管理器 c MapReduce sql引擎 d Impala sql引擎 e 工具概观 2 数据仓库知识 a Hive数据库 1 Hive Sql 2 数据库结构 b
  • 计算机毕设ssm工厂产品销存管理系统741e99 独有(附源码)

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP mybatis Ma
  • linux ls 统计文件数量和文件夹数量

    首先要明白 A 显示所有文件和文件夹 含隐藏 是 ls al 都是小写的a参数 root hxm aaa ls al B 显示所有文件和文件夹 不含隐藏 是 ls l root hxm aaa ls l C 显示所有 文件夹 不注意 只显示
  • rt-thread studio中新建5.02版本报错

    先吐槽一下 rt thread studio出现BUG真多 好多时间都是在找BUG 但里面用好多控件还是挺好用的 真是又爱又恨 所以一般使用功能不多的话还是用keil多一点 创建5 02版本工程之后直接进行编译 直接会报下面这个错误 资源
  • Spring Boot新特性 JdbcClient

    SpringBoot 3 2 引入了JdbcClient API组件可以对数据库操作 实际上JdbcClient是在JdbcTemplate基础上进行了封装 SpringBoot 3 2引入了新的 JdbcClient 用户数据库操作 Jd
  • WPS项目编号(序号)无法继续前一列表

    问题 在编写文档中 序号无法继续前一列表 序号之间无法自动连接 解决方法 使用格式刷 格式刷是复制格式的操作 可以用于选中已有格式的单元格 复制到需要设置格式的单元格 参考文章 在wps中 编号不能继续上一个编号时 采取的一种方法 CSDN
  • 计算机毕设ssm高校餐厅评价小程序y5b7i9 独有(附源码)

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP mybatis Ma
  • 计算机毕设ssm歌曲发烧友网站4956v9 独有(附源码)

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP mybatis Ma
  • Fiddler移动端抓包

    本篇文章 博主想使用通俗易懂的话语 让大家明白以下内容 什么是抓包 哪些场景需要用到抓包 Fiddler抓包的原理 怎样使用Fiddler进行移动端抓包 抓包 包 Packet 是TCP IP协议通信传输中的数据单位 一般也称 数据包 我们
  • rt-thread studio中新建5.0不能用

    文章目录 一 版本对比 二 文件和文件夹打斜杠 在使用RT Thread studio创建新工程5 0版本的时候 结果发现新建完成之后程序不能正常运行 但是创建4 10版本的时候却能运行 那肯定是新版本出现了BUG 一 版本对比 首先对比了
  • .NET 中忽略 HttpWebRequest ReadWriteTimeout;在单声道中工作

    将数据写入 Web 服务器时 我的测试显示 HttpWebRequest ReadWriteTimeout 被忽略 这与MSDN规范 例如 如果我将 ReadWriteTimeout 设置为 1 1 毫秒 调用 myRequestStrea
  • 如何将会话变量传递给 RoR 中的模型?

    我之前在应用程序中使用了全局变量来传递信息 但我遇到了一个问题 感谢这里的每个人建议我将这些数据存储在数据库的会话中 我尝试了一下 但发现无法访问Model中的session变量 我用谷歌搜索知道这是模型的正常行为 RoR 不会将会话变量传