Webpacker 只是包装了一下 webpack 那玩意难用得问前端社区咋想的... 上周研究一通宵,我也晕晕的...不过只能说看了 sprockets(Assets pipeline 背后的技术)的进展,只能说要提早接受 webpack,当然前端要是又自我革命,那只能怪 DHH 看走眼了吧。
你提的问题(可能)需要用 context.require 解决,简单来说就是 webpack 只会预处理在 js(entry)中 require 的资源。
此外,基于这个原理,简单处理下可以让 webpacker 完全替代掉 assets pipeline,但我最近很没空所以等 RubyConf 结束可以分享一下子
简单的来说,BS 是不源生支持 Webpack 的(即使是最新的 4 beta),特别是你用的是 BS 3.x 最后一次更新两年前,那时候还不存在 Webpack 呢,当然你说的问题显然也是有解的,但是不建议你折腾了。
最简单的方法是,既然 BS 4 beta 已经发布,不妨直接用新版,官方也给出了如何使用 Webpack 的文档 https://getbootstrap.com/docs/4.0/getting-started/webpack/
加我微信 jasl123 我拉你
部署的时候 执行 rake assets:precompile 的时候应该也会执行 webpcker 的 compile 的。
会后我写篇文章讲怎么彻底抛弃 assets pipeline~
不同规模的应用,采取的架构会不同的。
中小型项目,业务不复杂的项目,我建议遵照 Rails Scaffold 的代码风格来实现,另外学习一下 Rails Guide 里样例代码的风格。
下午搞。。。
用带 HTML 语法高亮的编辑器(简单来说就是究极版记事本)直接写代码,从初学就养成这样的习惯
DW 生成的代码是完全没办法拿出来用的
首先通过 shell 调用是没差的,没有不良作用。打包归打包,能怎么用还不是要按照 gem 方的基本法嘛?
其次,即使真的通过代码调用,你还是得按我的说法做,原因就是我回复的那些
最简单的
`fastlane init`
用反引号(其实茴香豆有好几种写法。。。不过确实几种用法有点差别就是了,自行 Google)就可以调用 CLI 了
正确的做法是是接入异步队列,在异步任务里做这事,记录执行时候的 output,再在页面里呈献给用户,通常这些命令都是长耗时的,在 Rails 的 action 里处理,会阻塞掉其他人访问的响应,并且有可能触发浏览器超时超时
直接用 Atom 这类编辑器吧,公司检查的时候用 NB 装装样子就好了
我最后还是没弄
正常的技术储备啦,Phoenix 作为新生事物还是有很多可取之处的,有个非关键的服务组件尝试 Phoenix 了,没有了解那边的细节,闲聊感觉那边对于 Elixir 应用的部署运维还是不太熟悉,所以运维成本未必低。
Ruby 这边部署运维这一套很熟悉了,专门的运维团队(不懂开发的)和 Rails 开发这边也有了一定的默契。
@lihuazhang 新服务器没添加我公钥,联系其他管理员部署了,估计要过会
小妹妹睡得好晚啊
登录后 App.current_user_id = 1107;
渲染到了 HTML 上,但是 App.current_user_id => null
App.isLogined() => false
就是说那 JS 没按预期方式执行,那我说更正下说法“没有正确的使用 Turbolinks”可以了吧...
当然你说的改法是很好的,我没注意到有这个 meta
https://github.com/ruby-china/homeland/blob/master/app/assets/javascripts/app.coffee#L117 这个判断造成的跳转,结合 https://github.com/ruby-china/homeland/blob/master/app/assets/javascripts/app.coffee#L325 这里 还有 https://github.com/ruby-china/homeland/blob/master/app/views/layouts/application.html.erb#L83 这里,应该是 turbolinks 的锅,登录成功要么补上这个赋值要么干脆刷新全站好了
笔记本上没 homeland 的开发环境。。。
可以呀,一直到开会当天都可以买~
还没组,下周吧,这周太忙了
有衣服送的~ 云币赞助,这次没有公司 Logo 哦~ 其他在我们精力和预算内,还在计划中~
那应该是 sxl 编辑器的问题了。。。我删掉重新添加吧,本来复制一份新的出来,把字改掉,更新链接就可以了
现在流行 Puma 了,Puma 首先是 Rails 5 的默认 web 容器,其次如果你使用 ActionCable 或类似的 websocket 后端的话,Puma 不需要你单独再启动额外服务来运行了。
至于和 Nginx 搭配,两个在 Nginx 的配置方式是完全相同的
其实放 if else 啥的 也没啥不妥,如果你觉得不爽或者逻辑确实太长,影响可读性,可以用把具体逻辑封装进子视图
<% if condition %>
<%= render 'view1' %>
<% elsif condition2 %>
<%= render 'view2' %>
<% else %>
<%= render 'view3' %>
<% end %>
另外像通知这种类型的内容,可以采用 Tell, don't ask principal 来组织代码
<%= render 'notice' %>
在 notice 里去处理是否渲染
<% next if flash.empty? %>
...
或者封装 helper render_notice
fixed
那天开会去了。。。回来翻了下源码,没注意是要加到 module 上的,简单来说就是加了以后,model_name 就把 namespace 设置成 nil,于是就等同于
def self.model_name
ActiveModel::Name.new(self, nil, name.demodulize)
end
这个 hack 了
devise 支持 scope
有可能,1.8.7 是九十年前的版本,早已停止维护,1.9 开始 Ruby 的实现有了很大变动
于是至今还是前端苦手...
ruby 版本太老了,升级到 2.2 以上
合不合理要看在什么语境下讨论,Elixir 和 Ruby 虽然像,但是根本理念不同,套用 Elixir 的理念去说 Ruby 的某条不合理,这个是没有办法讨论的