rails
文章平均质量分 75
小毒物儿
这个作者很懒,什么都没留下…
展开
-
rails 常量自动加载和重新加载机制
Rails的常量自动加载和重新加载机制基于一套命名约定和默认加载路径,它会根据需要自动加载和重新加载类和模块的定义。这使得在Rails应用程序中,无需手动管理类的加载,使开发更加方便,并在生产环境中提高性能原创 2023-10-08 15:37:49 · 243 阅读 · 0 评论 -
Ruby 风格指导
使用空格来围绕操作符,逗号 , 、冒号 : 及分号 ; 之后,围绕在 { 和 } 之前。空格可能对(大部分)Ruby 直译器来说是无关紧要的,但正确的使用是写出可读性高的代码的关键。sum = 1 + 2a, b = 1, 21 > 2 ? true : false; puts 'Hi'[1, 2, 3].each { |e| puts e }唯一的例外是当使用指数操作符时:# 差...转载 2018-06-14 11:39:27 · 320 阅读 · 0 评论 -
Rails-----ActiveSuppor::Concern
ActiveSupport::Concern作用ActiveSupport::Concern源码分析ruby是单继承,Mixin的出现实现多重继承,在使用include module时,他会立即被插入到集成体系中包含他的类的上方,以LIFO方式。所以这要求我们在开发过程中要清楚的知道include的依赖从属关系。在没有引入ActiveSuppoer::Concern之前,我们是这样实现拓展的。 ...原创 2018-06-13 21:00:31 · 377 阅读 · 1 评论 -
Rails 指南TIPS
rails指南重要内容: 1:自动加载和重新加载常量中主要内容: Kernel#require 加载一次 #所以在生产环境下 如果不重新启动服务,修改内容不生效 kernel#load 加载多次 #所以在开发环境下 更改后无需重新启动服务即可生效,开发环境下更为友好 autoload_paths 默认包含: A: app 目录中的全部子目录都自动纳入 a...原创 2018-04-02 11:40:06 · 174 阅读 · 0 评论 -
Gem aasm
gem aasm TODO # 状态机 默认使用的是aasm_state 想要制定状态列名,使用aasm :state # State Machine aasm column: "state", requires_new_transaction: false,whiny_transitions: true, whiny_persistence: true, ...原创 2018-04-02 11:39:13 · 238 阅读 · 0 评论 -
Rails 平时的一些小技巧
1:helper_method :current_user #这样可以在页面上调用current_user方法2:include UserHelper 这样可以在controller中调用helper内的方法3:Rails.application.routes.url_helpers.urlhelper方法名 这样在model中可以调用routes中定义的路由 或者使用includ...原创 2018-04-02 11:37:47 · 541 阅读 · 0 评论 -
gem devise
gem devise # for devise omniauth on user scope 访问的是admin/sign_in ,根据path 来确定前面的路由值 devise_for :users, path: "admin", controllers: { omniauth_callbacks: "omniauth_callbacks" } ...原创 2018-04-02 11:32:01 · 224 阅读 · 0 评论 -
rails常用技巧
1:Rails.application.routes.recognize_path 解析路由对应的Controller和Action eg:Rails.application.routes.recognize_path "http://localhost:3000/admin/goods/list_new" => {:controller=>"...原创 2018-03-06 18:15:18 · 184 阅读 · 0 评论 -
Fastest Way To Load Data In MySQL
Rails快速批量插入数据的几种方式: 1:Use transactions(减少 Commit 次数,从而微微的提速,但还是有 N 次数据库的调用) 2:Get down and dirty with the raw SQL 3:A single mass insert 4:Use INSERT statements with multiple VAL转载 2018-01-25 18:20:21 · 151 阅读 · 0 评论 -
rails gem devise
1:在Gemfile中添加 gem 'devise' 2: 执行bundle install 之后 将devise添加到项目中去 rails g devise:instal 会创建以下文件: config/initializers/devise.rb config/locales/devi原创 2018-01-25 14:19:24 · 268 阅读 · 0 评论 -
The difference between namespace and scope in rails
new_my_store GET /my/stores/new(.:format) my/stores#new namespace "my" do resources :stores,only: :new end new_store GET /mytest/stores/new(.:format) stores#new s原创 2018-01-25 15:08:01 · 165 阅读 · 0 评论 -
Render template if exists in Rails
业务场景:不同的商品类型render不同的页面(根据数据库里面type的不同render相应的页面)维护和同步它们是非常困难的 if lookup_context.exists?(@good.type_name, "_good","admin/goods/form", true) %> render "admin/goods/form/#{@good.type_name}", f:原创 2018-02-01 11:37:41 · 164 阅读 · 0 评论 -
Turbolinks 的工作原理
为了理解 Turbolinks 的工作原理, 我们先来看一下在 chrome 浏览器中, 网页是如何被加载的.下载 index.html解析 head 标签中的 link 与 script 标签, 如果是带有 src属性, 阻塞其他逻辑执行, 继续去下载对应的资源并执行. 如果没带, 则直接执行其中的代码逻辑.渲染 body 标签的内容, 并解析执行 body 中的 scr原创 2018-01-23 15:49:37 · 1306 阅读 · 0 评论 -
ActiveRecord::StatementInvalid: Mysql2::Error: Specified key was too long; max key length is 767
我的项目是为了支持emoj表情包,数据库需要设计成utf8m64,这样添加索引的大小最多为191执行以下任务修改index的长度即可,如果之前使用的是255,会造成数据的截断,慎重哦。。。。。desc "Database related tasks"namespace :database do desc "Convert to utf8mb4" task convert原创 2018-01-22 17:50:18 · 404 阅读 · 0 评论