你如果用 rvm 装的话 考虑这样用 /usr/bin/sudo -iu 你的用户 命令
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 以上