
rails语法
文章平均质量分 86
zhangcaiyanbeyond
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
has_many 关联关系表单 提交
class Author has_many :booksendclass Book belongs_to :authorendauthor = Author.create(:name => "zcy", :book_ids => [1,2,3])author.books.collect(&:id) => [1,2,3]原创 2011-04-18 17:16:41 · 162 阅读 · 0 评论 -
rails 根据异常显示特定的错误页面
rescue_from 异常, :with => :actioneg:rescue_from Exception, :with => :errordef error render :file => "novel/infos/error", :layout => "novel"end当发生了指定的异常时,就会显示特定的页面,这个通常放到application_...原创 2011-03-27 20:50:11 · 137 阅读 · 0 评论 -
send_file ie下文件名乱码问题解决
使用rails的send_file 实现下载功能时,type指定application/xls;charset=utf-8, firefox下文件名称为中文,但是ie下确实乱码,解决方式为如果是ie的话使用CGI::escape("文件名.doc"),这样就会在ie下正常显示,例如user_agent = request.user_agent.downcasefile_name...原创 2011-10-28 17:50:41 · 417 阅读 · 0 评论 -
belongs_to 多级关联关系
有一种情况,是这样的c属于b,b属于a,但是我们有时候想建立c属于a的关系,也就是c.a替代原来的c.b.a,那么可以使用through和has_one的结合使用来实现这个.例如1)class A has_one :bendclass B belongs_to :a has_one :cendclass C belongs_t...原创 2011-04-12 14:18:08 · 372 阅读 · 0 评论 -
同时分页查找没有关联关系的多个表
supplyinfos和seekinginfos两个表需求: 实现供求信息列表,包括supplyinfos和seekinginfos两个表中的所有数据,并且按照created_at倒序排列,而且要求分页实现: 用了5个小时的时间,终于知道怎么实现了,不多废话了,直接看实现方式,这种方式依赖于will_paginate:Supplyinfo.paginate_by_sql("...原创 2011-12-30 14:41:35 · 402 阅读 · 0 评论 -
html_safe
html_safe: 可以保证(> < & )这样的html代码转义。举个例子: 在helper.rb中这样的"html_safe使用"代码,会被转换为 <h1>html_safe使用</h1>,也就是说最后显示的效果依然是 html_safe使用,而加上html_safe,那么他将不会转义,将作为html代码。...原创 2012-01-12 13:56:53 · 1011 阅读 · 0 评论 -
我的rails 编程规范
1: 属性中时间要已at结尾,例如created_at, updated_at, deleted_at2: boolean型的属性其action和method的名字,常用的关键字:verify 验证原创 2012-01-16 15:19:01 · 127 阅读 · 0 评论 -
数组使用will_paginate
有的时候,在开发的过程中需要对模型数组进行分页,此时我们可以如下:require "will_paginate/array"array.paginate(page:..., per_page:....)注意: 如果还需要对model数组排序,可以使用sort,例如,按照created_at倒序排列:array.sort{|a, b| b.created_at a...原创 2012-03-30 11:58:32 · 135 阅读 · 0 评论 -
rails 中 group 按照一定的规则返回数据
has_many :user_resumes, class_name: "UserResume", group: :company_id, select: ["*, max(updated_at) as updated_at"]注意: 这个就是返回user_resumes中的company_id的值不重复的数据,默认情况下是返回id数值小的数据,但是有的时候我们需要按照一定的规则返回,...原创 2012-11-03 19:20:47 · 548 阅读 · 0 评论 -
随笔知识
使用newrelic 的 /newrelic功能: 本地查看newrelic,需要注意两点: 1) developer_mode: true 2) newrelic版本是 4.0.0.332 config.eager_load: 启动预加载,这样启动慢,但是运行快,生产环境默认truerails console 退出再进入 不记录上一次的历史记录: https://sta...原创 2014-08-07 21:11:21 · 320 阅读 · 0 评论 -
rails 笔记
启动项目:ruby script/server -e development(默认)ruby script/server -e testruby script/server -e production在编写ruby代码时,如果要引用另一个文件中的类和模块,需要使用require关键字,但是当我们在rails中引用另一个文件中的类和模块时,rails会自动把类名称根据命名约定...原创 2011-03-27 20:49:41 · 336 阅读 · 0 评论 -
rails 发送电子邮件(ActionMailer)
1: 复制以下配置邮件的代码到environment.rb文件下面或者其他的环境文件中ActionMailer::Base.default_charset = "utf-8" # 设置发送邮件的内容的编码类型ActionMailer::Base.default_content_type = "text/html" # 发送邮件的默认内容类型ActionMailer::Ba...原创 2011-03-27 20:49:11 · 1063 阅读 · 0 评论 -
rails 读写分离
开发环境下实现rails的读写分离:首先: 一定要保证主从数据库的完全相同,这是以下的前提。实现功能: select操作在slave数据库操作,而非select(insert、update、delete)操作在master数据库操作。1: 安装masochism和master_slave_adapter插件ruby script/plugin install g...原创 2011-03-27 20:48:45 · 271 阅读 · 0 评论 -
counter_cache的使用
有点惭愧,做rails也2年了,竟然不会用counter_cache,刚才google了counter_cache,感觉这个还挺有用的,举个例子,在sina微博中,微博的评论数和收藏数就可以使用到counter_cache,使用了counter_cache,我们就不需要在数据库中查找该博客下的所有评论,然后再计算评论数了,举个具体的例子吧. class Blog <...原创 2011-10-08 11:55:34 · 434 阅读 · 0 评论 -
rails项目升级文档
---主题:升级项目到 3.0.0.beta3 注意:rails需要至少ruby 1.8.7,如果ruby版本不够1.8.7,请升级为1.8.7或1.9.2。 1: 升级rubygems为1.3.7 sudo gem update --system 2:安装rails 3.0依赖的包 1》sudo g...原创 2011-03-27 20:37:03 · 195 阅读 · 0 评论 -
去掉form_for的报错绑定属性功能
去掉form_for的报错绑定属性功能,在config的initializers下加入以下代码:ActionView::Base.field_error_proc = Proc.new{|html_tag, instance| #"#{html_tag}" html_tag}原创 2011-03-27 20:44:51 · 132 阅读 · 0 评论 -
delegate的使用
我们有时候会遇到这种情况,如下info.user.nameinfo.user.age我们可以让代码变得更漂亮些或者你想重构的更好些,那么如下:class Info< ActiveRecord::Base belongs_to :user delegate :name, :address :to => :user, :prefix => trueend...原创 2011-03-27 20:45:23 · 156 阅读 · 0 评论 -
ie下自动下载excel表的解决方式
ie下自动下载excel表的解决方式:1: config.action_controller.use_accept_header = false用于设置确定response格式的规则。如果该值设为true(默认值),则respond_to方法和Request#format方法会根据Accept Header返回相应格式的response。弱该值设为false则request格式会单...原创 2011-03-27 20:45:52 · 255 阅读 · 0 评论 -
使用update的回调方法中 1:需要用到更改该对象属性之前的属性值 2:想要只更改某个属性才去触发回调方...
在使用update的回调方法中, 1)是否遇到过 需要用到更改该对象属性之前的属性值 2)是否遇到过想要只更改某个属性才去触发回调方法好的,我们来解决这两个功能需求: 1) 无论你使用before_update还是after_update,当你改变了某个属性的值,例如age吧,你在回调方法中self.age 或 age得到的都是更改后的值,无论该回调方法是否可以有效执行...原创 2011-03-27 20:46:21 · 416 阅读 · 0 评论 -
rails 设置控制器中方法为helper方法
helper_method : 可以指定控制器中的某些方法为helper方法,这些方法可以直接在视图中使用。举例: helper_method :current_user def current_user=(current_user) session[:user_id] = current_user.id @current_user = current...原创 2011-03-27 20:47:16 · 274 阅读 · 0 评论 -
rails日志过滤字段信息(filter_parameter_logging)
filter_parameter_logging : 该方法指定某些字段的内容不能显示在log日志中。举例:filter_parameter_logging :password, :password_confirmation原创 2011-03-27 20:47:45 · 154 阅读 · 0 评论 -
rails 表单数据保护(attr_protected、 attr_accessible)
attr_protected、 attr_accessible 解析1:为什么使用这两个方法: 我们提交一个表单,该表单中有一些不可以让用户提交的字段,例如‘激活(active)’字段、‘用户权限(purview)’字段,但是怀有恶意的用户可以模拟表单提交这些属性,可以随意的给自己权限,而我们控制器中的取得属性的代码是Account.new(params[:account...原创 2011-03-27 20:48:12 · 170 阅读 · 0 评论 -
rails5 belongs_to 默认不能为空,报错must exist
1: 在config/application.rb设置 config.active_record.belongs_to_required_by_default = false2: belongs_to 的时候添加optional: true原创 2017-04-29 16:37:58 · 559 阅读 · 0 评论