正如 jiazhen 所说,类似的问题还有 Array.new。
对于第一点,这样弄肯定是不行的,turbolinks 就是替换 body 里的内容,你把 js 放到 body,相对于没有 turbolinks 了;
对于第二点,没明白你重复绑定是什么意思,很多没有jquery.turbolinks的项目都是类似这样来做的: $(document).on("ready page:load", function(){ ... })
就这里的情况而言,看起来是jquery.turbolinks没生效,好好看看。
#10 楼 @runup 方法执行结果可以理解为方法进行某种操作所引起的变化;方法返回结果则有可能是作者根据需要返回的值,可能与执行结果有关,也可能无关。
另外不是所有方法都有返回值,你比如Java中很多方法返回void其实就是表示无返回值;Ruby中方法之所以一定有返回值,是因为任何语句都可理解为可求职的表达式,所以无论你是否显示return ,总会有返回值;和 Java中的void类似,Ruby里的nil也经常用于表示无有意义的值可返回,此时也就不建议你去使用它的返回值了,比如你这里就是不大妥当的。
也可以了解下 命令查询职责分离模式(Command Query Responsibility Segregation,CQRS)。
if false || demo
puts "succ"
end
你这段代码中demo返回值为 nil,条件表达式求值为 false,根本进不了你打印‘succ’那一行。
这个不难理解吧,一试便知:
[1] pry(main)> puts "this is the demo"
this is the demo
=> nil
[2] pry(main)>
不错,建议代码高亮一下,看起来就更漂亮了。
#3 楼 @small_fish__ 貌似无 assets 修改的部署,不会进行 assets:precompile 的,这种情况下浏览器还是会用缓存的资源
#3 楼 @u1453357893 建议把你的 IDE 配置好,几乎所有方法都可以去看其源码实现的(个人用这个来代替文档),只不过有些实现很复杂,不那么好懂。
你是指 Rails 实现,还是我们自己的 production code?
前者的话,到处都是,比如 scop就是所谓的类宏
#3 楼 @small_fish__
已不建议: render :partial => 'partial_name', locals: {some_var: xxx}
推荐改用: render 'partial_name', some_var: xxx
f.file_field的 id 是 #resource_client_android 吗?
@rei 访问不了,麻烦更新下地址。
#3 楼 @taojay315 这个不错
你第三个问题有问题吧,感觉不会出现你说的这样喃。
怎么感觉 Ruby 里少有用 json 作配置的喃,一般都用 yaml 的样。
直接把 js 放到 body(即使是放在底部),容易产生于 turbolinks 相关的 bug
大致步骤如下:
initializers/assets.rb 里配置 Rails.application.config.assets.precompile += %w(xxx.js)
<%= javascript_include_tag 'xxx' %> (如果特殊需要可以判断 controller_name, action_name);另外可以结合yield和content_for,如在 layout 里加 yield :scripts,在对应的 view 里用 content_for :scripts do ... end
不错,

Rails Guides says that “You should use
has_many :throughif you need validations, callbacks, or extra attributes on the join model”. - See more at: http://blog.flatironschool.com/why-you-dont-need-has-and-belongs-to-many/#sthash.WXKB4UlF.dpuf
用 rake -T看看输出列表里有没有你要运行的 db:session:create
#9 楼 @stardiviner 你嘚自己看看article_should_be_published的情况,另外我好奇的是 comment 的错误为何会来源于名为article_should_be_published的验证。