rails将类常量重构到数据库对应的表之后记

    怎么还有啊!别急,有强迫症的人伤不起!有点小事没说完感觉痒痒的:就是如果表payment_types经常变动该怎么办?每次都要关闭rails网页服务器,然后重启吗?那也太麻烦鸟,最终的解决方案是,在Order的验证中强制每次都从数据库的表中拉取支付类型数据比较,最后修改完的Order.rb代码如下:

class Order < ActiveRecord::Base
  has_many :line_items,dependent: :destroy

  validates_each :pay_type do |model,attr,val|
    unless PaymentType.types.include?(val)
      model.errors.add(attr,'Payment type not on the list')
    end
  end
end

一番折腾后,笨猫貌似又领悟了些许:首先要找到问题的背后真正的原因是啥,否则就是瞎闹;其次在不确定时步伐要小,步子要缓,不要指望一次成功,否则后果很惨痛,你懂得...

时间: 2025-01-07 18:38:24

rails将类常量重构到数据库对应的表之后记的相关文章

rails将类常量重构到数据库对应的表中之三

    经过博文之一和之二的重构,貌似代码表现的还不错,正常运行和test都通过鸟,但是,感觉告诉我们还是有什么地方不对劲啊!究竟是哪里不对劲呢?我们再来好好看一下.     我们把数据库表中的支付方式集合直接放在实现的地方,貌似很唐突.无论是Order model中,Order控制器中还是new.html.erb中都是如此: #in Order.rb   validates :pay_type,inclusion:PaymentType.all.map {|type|type.pay_type

Php面向对象 – 类常量

Php面向对象 – 类常量 类常量:类中,保存运行周期内,不变的数据. 定义: const关键字 const 常量名 = 常量值 例子: class Student { public $stu_id; public $stu_name; public $stu_gender; const GENDER_MALE = '男'; const GENDER_FEMALE = '女'; } 类常量不受访问限定修饰符的限制 访问: 类::常量名 例子: class Student { public $st

ruby的类常量解析

一个常量由大写字母开头.它应最多被赋值一次.在Ruby的当前版本中,常量的再赋值只会产生警告而不是错误(non-ANSI版的eval.rb不会报告这一警告) ruby>fluid=30 30 ruby>fluid=31 31 ruby>Solid=32 32 ruby>Solid=33 (eval):1: warning: already initialized constant Solid 33 常量可以定义在类里,但不像实变量,它们可以在类的外部访问. ruby> cla

我看到java中有类.常量,那么有对象.常量吗

问题描述 我看到java中有类.常量,那么有对象.常量吗 我看到java中有类.常量,那么有对象.常量吗 这里的常量的本质应该是一个对象吧 解决方案 把一个变量用final修饰他就变成常量了,常量的特点就是只能赋值一次 比如说一年有12个月,不会变化在代码里就是: final int mouth = 12: mouth = 13://这样就会出现编译错误了,不符合语法 变量就是等号左边的,如果是基本类型的就是和值一起保存在栈内存中 如果是引用类型的变量的作用就是指向一个对象的内存地址即栈中的变量

PHP面向对象的进阶学习(抽像类、接口、final、类常量)_php技巧

一.抽像类(abstract) 在我们实际开发过程中,有些类并不需要被实例化,如前面学习到的一些父类,主要是让子类来继承,这样可以提高代码复用性 语法结构: 复制代码 代码如下: abstract class 类名{ 属性 $name; 方法(){} //方法也可以为abstract 修饰符 function 方法名(){} } 例: 复制代码 代码如下: abstract class animal{ public $name; public $age; //抽象方法不能有方法体,主要是为了让子

myeclipse反向生成的实体类的个数少于数据库中表的个数怎么解决?

问题描述 myeclipse反向生成的实体类的个数少于数据库中表的个数怎么解决? 我的数据库中有7个表,反向生成只生成3个? 解决方案 是不是打开方式不对啊 解决方案二: 把最后一步那4个勾去掉就OK了

php面向对象之抽像类、接口、final、类常量

一.抽像类(abstract)        在我们实际开发过程中,有些类并不需要被实例化,如前面学习到的一些父类,主要是让子类来继承,这样可以提高代码复用性 语法结构:     代码如下 复制代码   abstract class 类名{         属性 $name;         方法(){}  //方法也可以为abstract 修饰符 function 方法名(){}     } 例:      代码如下 复制代码 abstract class animal{         pu

jsp调用java类并查询sql数据库(1/2)

jsp教程调用java类并查询sql数据库教程 package bean; import java.sql.*; public class MyDb_Page{     private Statement stmt;     private Connection conn=null;     private ResultSet rs=null;     private String navi;         public void connection(String db_name,Strin

java中 String类常量池

java中 String类常量池 String常量池详解: 1.String使用private final char value[]来实现字符串的存储,也就是说String对象创建之后,就不能再修改此对象中存储的字符串内容,就是因为如此,才说String类型是不可变的(immutable).String类有一个特殊的创建方法,就是使用""双引号来创建.例如new String("i am")实际创建了2个 String对象,一个是"i am"通过