正如 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 :through
if 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
的验证。