推荐参考一下railscasts-china
class Episode < ActiveRecord::Base
scope :by_tag, lambda { |tag_name| joins(:tags).where("tags.name = ?", tag_name) unless tag_name.blank? }
scope :by_keywords, lambda { |keywords| where("REGEXP_LIKE(episodes.name, ?,'i')", "#{keywords.split(" ").join('|')}") unless keywords.blank? }
scope :published, lambda { where(publish: true) }
end
class EpisodesController < ApplicationController
def index
@episodes = Episode.published.by_tag(params[:tag_id]).by_keywords(params[:query]).page(params[:page])
respond_to do |format|
format.html
format.rss
end
end
end
#19 楼 @leomustafa bootstrap 用的人那么多,不可能有这样的低级错误啦,你应该用bootstrap-sass,然后从bootswatch拷贝一份对应的已经调好的样式出来用。这两个才是官方 gems,支持最新 3.2.6。
#65 楼 @hlltc 那就需要调用material_list
接口,得到 image 素材的命令是wechat material_list image 0 10
,详细问题还是在wechat issues里面讨论吧。
Deliver Audacious Web Apps with Ember 2,9 美刀,便宜啊便宜!
Windows 推荐 puma,unicorn 从来就是不支持的。
#14 楼 @yzdel2000 好的,我错了,PHP 是最佳语言。。
#19 楼 @so_zengtao 多谢,这个 gem 确实入门不错,关键简单,但又不是太简单。。
#8 楼 @yzdel2000 确实 5.6 还是支持的,不过貌似 7.0 的确没有,对 PHP 不熟,只是随口一说,听众眼睛雪亮啊!
买买买!
client_side_validations总算又活了,之前粗粗看过这个,感觉想用好很难,对开发者的 rails 和 coffee script 能力都有要求。
#3 楼 @chaucerling 当然不值得,不过现实的问题是先有了简单的页面 DOM 更新,然后你就会碰到复杂的,然后越搞越复杂,直到某一个点,你强烈的感到其实这已经是 SPA 了。。。
Rails 鼓励使用 format.js,因为渲染的 html 可以同后端共享,rails_ujs,turbolink 的支持也好。当然缺点也明显,前端后端不分离,完全的 Rails 解决方案绑定,后期不利于进行 micro-service 化。
format.json 的话,必然搭配前端框架,ember 配ams其实是目前成熟度最高的,也是除了除了 format.js 最偏 rails 的,其实越是纯 json,对 rails 的依赖越少,其实用 rails 的意义就越小。
format.json 对前端框架的选择,react-rails或者vue.js,目前是比较火的,但是就没有 ams 这样的 declative gems 了,一般都需要用 jbuilder 进行输出。
应该恭喜才对,说明产品进入稳定期了。
#11 楼 @wppurking 两个框架都有优秀的地方,react-native毕竟 FB 也是敢想敢干啊,都学吧。。
#2 楼 @zorajiang 其实应该使用这个分支:https://github.com/javyliu/rails_kindeditor,不过看起来这个编辑器好久没人更新了。。
#2 楼 @aidewoode 同意,你的这篇vue.js 使用感受写的不错。
#5 楼 @billy 准确的说是 foo_url(@some_model),不过坑爹的是 url routes helper 无法在 model 里面使用。
write 部分可以简化一点吧?
def magic_change(file)
# read file
return unless File.exist? file
original_string = IO.read(file, encoding: 'GBK').encode!('UTF-8')
# deduplicate characters
original_string = original_string.gsub(/([\S]{4,})\1/) { Regexp.last_match[1] }
# write file
File.write('b.txt', original_string, external_encoding: Encoding::UTF_16LE)
rescue => error
p error
end
magic_change ARGV[0]
好像还不支持连接数据库?这样怎么用于生产啊。。
@ibachue 的how-to-exec-shell-in-ruby 真不错,学到很多。
#1 楼 @although13 正解。
[3] pry(main)> show-source File#open
From: io.c (C Method):
Owner: Kernel
Visibility: private
Number of lines: 36
static VALUE
rb_f_open(int argc, VALUE *argv)
{
ID to_open = 0;
int redirect = FALSE;
if (argc >= 1) {
CONST_ID(to_open, "to_open");
if (rb_respond_to(argv[0], to_open)) {
redirect = TRUE;
}
else {
VALUE tmp = argv[0];
FilePathValue(tmp);
if (NIL_P(tmp)) {
redirect = TRUE;
}
else {
VALUE cmd = check_pipe_command(tmp);
if (!NIL_P(cmd)) {
argv[0] = cmd;
return rb_io_s_popen(argc, argv, rb_cIO);
}
}
}
}
if (redirect) {
VALUE io = rb_funcall2(argv[0], to_open, argc-1, argv+1);
if (rb_block_given_p()) {
return rb_ensure(rb_yield, io, io_close, io);
}
return io;
}
return rb_io_s_open(argc, argv, rb_cFile);
}
#11 楼 @winstonyw 我就是天天 bundle update,但是,恩,恕我直言,感觉 deppbot 这门生意很难收到钱,因为无法帮助我了解每个 gems 的更改情况,升级了,我肯定还是会第一时间看 gem 的 changelog,然后按照相应指示改代码或者跑测试(实际上是开发时候顺便跑),总之,真的不觉得麻烦,还能顺便刷个论坛呢。。