#12 楼 @jasontang168 远程没做过,例如 Chef、Puppet?
#!/usr/bin/env ruby
puts "please input install folder:"
install_folder = gets.chop
puts "please input the version you choose:"
version = gets.chop
实现楼主举的例子,不需要额外的库。
Ruby 系统管理实战 http://book.douban.com/subject/3351248/
目前见过的比较复杂的用 Ruby 写的安装脚本是 https://github.com/phusion/passenger/blob/master/bin/passenger-install-nginx-module
如果楼主问“Ruby 怎么写安装脚本”估计很多人答,如果问“大家使用过 ruby expect 么”那就大大缩小了回答人群了。
好文章。
#3 楼 @haoshanshan 我记得 TDD 这本书就是用 Java 做的示例。
不会用 shell 的不是好程序员。
问号前后空格,冒号前后空格。
在 Model 内直接执行 sql:
ActiveRecord::Base.connection.execute(sql)
就像用筷子一次夹两个丸子一样。
我的用法差不多,正常状况不会这么慢。可能的问题是文件系统太慢(虚拟机共享目录),编译缓存失效(gem 的 bug),其它未知问题。
所以先升级相关 gem 到最新版,删除 tmp 下的内容看看。
我觉得这种效果很烦,想快速下翻不行,快速回翻也不行,通常就关掉页面了。
有用虚拟机环境吗?
基于 Electron(Atom Shell),编辑器是微软自己写的。
#14 楼 @joezhang has_one 本身就添加了 create_profile 方法了。http://guides.rubyonrails.org/association_basics.html#has-one-association-reference
#12 楼 @flowerwrong has_one 已经添加了一个 build_profile
方法,最好不要覆盖引起歧义。
我喜欢 after_create :create_profile
,字段默认值在数据库里指定(role),或者给 Profile 加 getter 方法(avatar)。
after_initialize 每次创建对象都会执行,覆盖掉已有的值,建议换其它 callback。
顶楼代码查询了 4 次 User.first,创建了 4 个不同的 profile 对象。
user = User.first
user.profile.role = 'Admin'
user.profile.save
还以为中西视野是个名字。 #中西里菜
Rails 内置了个 builder 模版
http://guides.rubyonrails.org/action_view_overview.html#builder
Turbolinks 3!! It's horrible!!!