`

rails 的两个小技巧

    博客分类:
  • Ruby
阅读更多

1.可以使用alias_attribute 给model的字段取个别名

 

class User << ActiveRecord::Base

    alias_attribute :new_name, :old_name

end

 

2.可以使用 attr_accessible 保护model中不想被更新的字段

在rails 中,我们常会用这种方式更新:

user = User.new(params[:user])

user.update_attributes()

 

这样很容易被hack们模拟请求改变一些你不想让他们改变的属性,所以为了安全,务必用 attr_accessible 来指定他们可以修改的字段

  attr_accessible :email,  :password, :gender, :mobile, :phone

 

当然,设了  attr_accessible 也不意味着你就不能再修改这样属性了,你可以通过@model.send :attributes=, attributes, false这样的方式来修改属性。

 

分享到:
评论

相关推荐

    自动化生成支持cucumber,Rspec的Rails(持续更新中)

    标题 "自动化生成支持cucumber,Rspec的Rails(持续更新中)" 暗示了这个压缩包文件的内容可能涉及使用Cucumber和RSpec这两种自动化测试工具在Ruby on Rails框架下的集成和配置。Cucumber是一种行为驱动开发(BDD)的...

    Ruby-Ruby技巧惯用Ruby重构和最佳实践

    1. 缩进与空格:使用两个空格进行缩进,不要使用制表符。方法参数和括号间留一个空格。 2. 长方法:尽量保持方法短小精悍,一般不超过20行。 3. 注释:清晰的注释可以帮助理解代码,但应避免过度注释。优先选择自...

    实用Linux命令行技巧

    - 这两个命令分别显示了`ls`和`cd`命令的实际位置。 4. **alias**: 创建命令别名。 - 示例:`12:18:39~/alias ls="ls -G"` - 此命令创建了一个名为`ls`的别名,实际上是执行带有颜色输出的`ls -G`命令。 5. *...

    yangbinfx的博客文章-ruby部分备份

    12. **ruby1.8 1.9问题**:Ruby 1.8和1.9是两个不同的版本,每个版本有自己的特点和不兼容性。这里可能讨论了在升级或迁移过程中遇到的问题以及解决策略。 以上是基于提供的文件标签和部分内容所推测的Ruby和Rails...

    25个Apache性能优化技巧.docx

    8. **启用mod_gzip或mod_deflate**:这两个模块可以对发送到客户端的内容进行压缩,减少网络传输的数据量,加快加载速度。 9. **关闭HostnameLookups**:Apache默认会查找每个请求的完整主机名,关闭此功能可以降低...

    做网站的一些技巧

    在构建一个网站的过程中,有很多技巧可以提升效率、优化用户体验并确保项目的成功。以下是一些关键的知识点,结合了“做网站的一些技巧”这篇博文的主要内容和相关标签“源码”和“工具”。 1. **选择合适的开发...

    2021-2022年收藏的精品资料软件工程师Web开发者必知的25个Apache性能优化技巧.docx

    8. **使用mod_gzip或mod_deflate**:这两个模块可以对发送到客户端的内容进行压缩,减少网络传输的数据量,提高页面加载速度。 9. **关闭HostnameLookups**:禁用DNS查询以节省时间,因为每次连接都需要查询可能会...

    front-and-intermediario

    在IT行业中,前端和中间件是两个非常关键的领域,它们构成了互联网应用的基础架构。"Front-and-Intermediario"这个标题可能指的是一个项目或教程,旨在帮助学习者理解前端开发与中间件技术的交互。在这个场景下,...

    国外PHP动态第四期

    3. **结合使用Smarty和Zend Framework**:展示如何将这两个工具结合起来,构建一个功能完善的CMS系统,包括用户认证、内容管理等功能。 通过这种方式构建的CMS系统具有高度的灵活性和可扩展性,适用于多种应用场景...

    Pycharm 简单使用教程.docx

    4. **Ruby 编辑器(RubyMine)**:Ruby 和 Ruby on Rails 开发者的高效工具。 5. **C 和 C++ 编辑器(CLion)**:支持 C 和 C++ 的跨平台 IDE。 6. **.Net 编辑器(Rider)**:适用于 .NET、.NET Core 和 Xamarin 的...

    advent-of-code-elixir-starter:Elixir中的Advent of Code模板项目

    2. **Advent of Code**:Advent of Code 是一个每日编程挑战,每天发布两个编程问题,鼓励开发者以自己选择的语言解决。它是一个很好的学习和实践编程技巧的平台。 3. **Elixir 项目结构**:Elixir 项目通常包括 `...

    Ruby语言教程.docx

    通过系统学习Ruby语言的基本原理、编程技巧以及实践应用,不仅可以成为一名合格的Ruby程序员,还能在Web开发、脚本编程等多个领域发挥重要作用。希望每位学习者都能在Ruby语言的学习过程中不断进步,最终成为该领域...

    最新秋招freewheeljava笔试题.docx

    - C++/Go:掌握这两种编程语言的基础语法、性能特性和并发编程模型,如C++的STL和Go的goroutine。 - 高性能:了解性能优化技巧,如缓存、多线程、异步IO等。 2. **大数据基础架构及数据产品(Go,Hadoop,AWS)** - ...

    MongoDB权威指南(中文版)高清

    本书的两位作者均来自开发并支持开源数据库MongoDB的公司10gen。数据库开发人员可将此书作为参考指南,系统管理员可以从本书中找到高级配置技巧,其他用户可以了解一些基本概念和用例。你会发现,将数据组织成自包含...

    站长感慨asp编程究竟何去何从 <font color=red>原创</font>

    网站提供的内容包括ASP基础编程、ASP小偷与采集、ASP木马相关、ASP存储过程、ASP应用技巧、ASP CLASS类、ASP数据库相关、ASP基础、ASPFSO专题等,这些都反映了ASP在实际应用中的各种场景,如网站数据采集、安全性...

Global site tag (gtag.js) - Google Analytics