很简单的需求,搞那么复杂干嘛。
这和元编程、method_missing 都没关系,直接 where.not
或者加 scope 就行了。再或者传数组 ['female', nil]
scope :not_sex, ->(sex) { where.not(sex: sex) if sex.present? }
另外,你上面很多细节都是可以优化的。
where("people.country= ?", country)
=> where(country: country)
if !sex.nil?
=> if sex.present?
!"male"
没有这种写法,虽然语法上是没错
噢
建议你先好好读一下官方(比较权威)的文档说明和源代码里关键配置,不容易理解的地方,再 Google 进行补充。
puma 配置示例
mina-puma README
mina-puma tasks
你上面贴的配置,有的非常不合适,配置了还不如不配置(使用默认);
还有一些是错误配置。
除了上面提到的一些方法外,还有一个方法。
垃圾广告的一个特点是:大量发帖,并且帖子内容重复(甚至完全一致)。
所以,我会做文本检测,如果发帖频繁,并且内容相差不大,自动判断为 spam.
5.* 版本以后对内存需求又加大了。
之前我用的是 2G 的内存,也设置了 -Xms 和 -Xmx 及网站搜到的一些配置,但偶尔还是会崩溃。来来回回折腾...
后面不想折腾,升到 4G .... 目前一直运行良好,没出过问题。
加上 return false
class Aaa
before_save :check_num
def check_num
errors.add(:id, '不能保存就对了')
return false # 看这里
end
end
errors
, valid?
, save
之间的关系不是那么的明确。
加上 return false
class Aaa
before_save :check_num
def check_num
errors.add(:id, '不能保存就对了')
return false # 看这里
end
end
update:
return false
不能中断后续的 callback,使用 throw :abort
validate
更合适是
用路由 xxx_path
的形式,而不是 '/zeros_auditidea/steps' 指定路径
本书适合什么样的读者?
本书包含了哪些内容?
父类 ActionMailer::Base 有个 method_missing
方法
父类的父类 AbstractController::Base 有个 action_methods
方法
直接调用类方法 account_activation
会触发 method_missing
经过 method_missing
由 action_methods
进行处理 & 调用对应的实例方法 account_activation
没有
“根本没有什么元编程,只有编程而已” 可以动态定义、动态调用,执行,写代码的时候方便一点。
#7 楼 @fate +1 #6 楼 @seabornlee 你可以检查一下,是不是没做对,所以重现不了。
解决思路有两种:1)指定请求格式 2)即使请求格式不对,也能响应 第一种,你可以用 before_action 之类的指定 request format(response format 也就对应上了) 第二种,例如我上面的示例~~
不知道其他页面有没有类似问题,你可以自己根据需求进行选择…
注意 respond_to
这里的顺序
respond_to do |format|
format.js
format.html
end
像上面这种写法,curl 或爬虫 (对应 :formats=>["*/*;"]
) 则会报上述错误...要优先把 format.html
放在前面
另外一种解法 format.all
:
respond_to do |format|
format.all { render :show, formats: [:html]}
end
新语言?Swift 学习的人不少吧…Rust 学习的热情也很高吧
我擦?看了一下,感觉不错啊~
哎呀,感觉很不错啊 。。。我也去支持一下,链接是 这个 吗?
能看出比 1 多了些新内容...
@cdx_net Rails 是可以在 windows 下跑的。
关键是各种 gem 是否支持,即使支持也要看支持得好不好。在 windows 下,即使你引入一个很常见的 gem,你也需要搜一下“gem xxx for windows”。
并且,会遇到各种在 linux 下不会遇到的“坑”。
这些“坑”只会阻碍你学习。即使你解决了这些“坑”,也并不意味着你获得对应的使用经验。 因为其他人不会用 windows 进行开发,对他们而言这些经验是无用的;而如果你能用 Rails 进行工作的话,我相信你已经转入 linux 平台了,这些经验对你而言,同样是无用的。
当然,刚开始接触 Rails 的话,无所谓了。只是,不经意间,你已经输在了起跑线上~~
补充一些自己在用的: CoffeeAngular Syntax DashDoc Ruby on Rails snippets SCSS
可以用 Rails 自带的 FileUpdateChecker 进行 reload. 之前写过的,观察 services/views/ 下 .rabl 文件有更改时,自动更新。供参考。(api.rb 同样的做法,也可以自动更新)
rabl_files = Dir.glob(Rails.root.join("app/services/views/v1/**/*.rabl"))
reloader = ActiveSupport::FileUpdateChecker.new(rabl_files){
lib_reloader.execute
}
Rails.application.reloaders << reloader
ActionDispatch::Reloader.to_prepare {
reloader.execute_if_updated
}
rails c
里 reload! 同样起效。
推荐 ustack 国内的,速度快、性能好。 80 端口可以用,不强制备案(反正我是没有)。
靠谱不靠谱,可以搜索了解一下。前段时间和腾讯云签署云计算合作协议。
代码格式太乱,注意一下会更好...