之前一份工作由于 migration 和 schema 没注意维护一致性,新人加进来搭建开发环境没一天都不行,跑通之后就不敢动了只做自己负责的部分。
我庆幸我学 Rails 的时候是一张白纸,所有 Rails 提供的我都接受了,然后再思考我需要的是什么。
在生产环境人工操作,楼主很有勇气。
https://github.com/rails/strong_parameters
把参数过滤放到 Action,这个插件是 Rails 核心小组维护的。
我现在不用 attr_accessible 了,用 gem 'strong_parameters'
,Rails 4 内置。
#2 楼 @sforce100 之前已经这样用了,这就是 Ruby 里面 Module 的用法
https://github.com/ruby-china/ruby-china/tree/master/app/models/mongoid
Concern 只是把这种用法提炼成模式。
1、“那么 model,controller 需要定义共用函数”
这不太正常,一件事要不在 model 做,要不在 controller 做。
concern 用在 model 和 model、controller 和 controller 共享代码。
2、Controller 和 helper 共用,有个 helper_method 宏。
全局都要用的逻辑,抽取成库,比如 Nokogiri。
我这可以啊
User.where("profile.name" => /rei/i).first
=> #<User _id: 50c449……
mongoid 3.0.19
Record.where(state:"checking").where("checkins.behave_id": "...." )
引号
#7 楼 @gelihai1991 就是 migrate 任务写重了,change = up + down。
当前数据库状况可以打开 db/schema.rb 看看。
#5 楼 @gelihai1991 虽然已经删掉了 change,但是数据库结构已经被写进去了,开发环境下修正这个错误,可以用这个
rake db:migrate:redo STEP=1
重跑最后一次 migrate 任务。不过这样会丢失数据,生产环境不能这样做,只有新增 migrate 修正了。
#5 楼 @gelihai1991 脏数据。可以进控制台操作
rails c
> LineItem.where(:quantity => nil).update_all(:quantity => 1)
#3 楼 @gelihai1991 change 就是 up 和 down 的总和了,不用都写,我估计 change 把 quantity 的默认值改回 nil,然后相加的时候没有 + 操作产生异常。
#183 楼 @HungYuHei 这贴刚好集中处理了 XD
其实如果不买 Mac,那可是买的 Windows 啊。
这就跟做买卖的时候思考资本主义的本质一样。
修改 -> add/commit -> push