之前学习 Rails 的路径可能不对。Rails 对于我这样一个业余的、时间精力有限的开发者来说,实在太复杂、变化太快了。不管是开发、部署还是维护,Rails 总能给我带来各种问题,让我陷入困境。 回过头来看,正确的学习路径也许是 Ruby→Sinatra→Padrino→Rails。一门一门学习,一门一门掌握,一门一门精通,直至融会贯通,不管面对怎样的开发需求,都能游刃有余。 发现问题,及时调整,什么时候都不晚。现在就开始学习 Sinatra 吧,简单的需求,本来就应该用简单的工具、简单的方法来满足!
祝 Ruby 生日快乐!
不过不光是你的中奖概率降低了,别人的中奖概率也同样降低了,所以说到底还是公平的
提供一个可用的 Mina 1.0 的配置文件:
require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
require 'mina/rvm'
require 'mina/puma'
require 'mina/logs'
set :domain, 'www.haijia.org'
set :user, 'deploy'
set :deploy_to, '/home/deploy/www.haijia.org/haijia'
set :repository, '[email protected]:chinakr/haijia.git' # private repository
set :branch, 'master'
set :shared_dirs, fetch(:shared_dirs, []).push('public/upload', 'tmp/sockets', 'tmp/pids', 'db/production')
set :shared_files, fetch(:shared_files, []).push('config/database.yml', 'config/secrets.yml')
desc 'Set up environment.'
task :environment do
invoke :'rvm:use', 'ruby-2.4.1@rails5'
end
desc 'Prepare for deployment.'
task :setup do
in_path "#{fetch(:shared_path)}" do
['config/database.yml', 'config/secrets.yml'].each do |file|
comment %{Be sure to edit 'shared/#{file}'.}
end
end
end
desc 'Deploy current version to the server.'
task :deploy => :environment do
deploy do
invoke :'git:clone'
invoke :'deploy:link_shared_paths'
invoke :'bundle:install'
invoke :'rails:db_migrate'
invoke :'rails:assets_precompile'
invoke :'deploy:cleanup'
on :launch do
invoke :'puma:start'
invoke :'puma:phased_restart'
end
end
end
需要注意的是 https://github.com/mina-deploy/mina/blob/master/tasks/mina/bundler.rb
中已经包含了 set :bundle_path, 'vendor/bundle'
,所以在设置 shared_dirs
要使用 set :shared_dirs, fetch(:shared_dirs, []).push('tmp/sockets', 'tmp/pids')
而不是 set :shared_dirs, ['vendor/bundle', 'tmp/sockets', 'tmp/pids']
。这样就不会出现 mina deploy
时每次都重新 bundle 的问题了。
谢谢,是五笔输入错误,已把修正推送到 GitHub,thx a lot!
非常抱歉,这一章按计划是由我负责翻译的,还需要一些时日才能出炉,不好意思让您久等
原来是要使用fetch(:deploy_to)
代替#{deploy_to}
:
task :setup do
['log', 'config', 'public/upload', 'tmp/pids', 'tmp/sockets'].each do |dir|
command %{mkdir -p "fetch(:deploy_to)/shared/#{dir}"}
command %{chmod g+rx,u+rwx "fetch(:deploy_to)/shared/#{dir}"}
end
['config/database.yml', 'config/secrets.yml', 'config/puma.rb'].each do |file|
command %{touch "fetch(deploy_to)/shared/#{file}"}
comment %{Be sure to edit 'shared/#{file}'.}
end
end
“布署”是不是应该改为“部署”?
作为 Sublime Text 和 Atom 文本编辑器“重度 + 初级”用户,报名捧场...
Sublime Text 3 和 Atom 好像已经足够好了。错过了 TextMate 的时代,遗憾...
机器是好机器,我想要这样的机器,只是价格翻了一番,再不赚钱连这个吃饭的家伙都买不起了...
¥28900
新款 MLH42 深空灰/新款 MLW82 银,带 touch bar 定制机
LED 15.4Retina 16G ddr3 2T SSD
2.9GHz 四核 Intel Core i7 Turbo Boost 加速至 3.8GHz
Intel 530、Radeon Pro 460 4G 显存、USB-C*4、
2880*1800 分辨率、Force Touch 触控板、1.83kg
#10 楼 @mingyuan0715 翻译不易,翻译出好作品更是难上加难,作为《Rails 指南》和《Ruby on Rails 教程》的读者,向 Andor Chen 的辛勤工作致敬!
报名~ 希望大家多分享 Rails 和创业的故事
学习实践,大步前进
已购买
#32 楼 @hxh1246996371 这确实是一个好办法
#30 楼 @hxh1246996371 此话不假,然而从使用体验上看,这就像 Django 和 Rails 的差别
选择 Bootstrap 还是 Foundation?
Bootstrap 是 Twitter 员工开发的,Foundation 是 Zurb 公司的产品,两者都是开源的响应式框架,都得到了广泛应用。相比之下,Twitter 的名气无疑比 Zurb 要大得多,因此很多人在做这道选择题时,会毫不犹豫地选择 Bootstrap。然而事实上,Foundation 的语法比 Bootstrap 更简洁、更清晰、更优雅,也更容易实现自定义风格。因此,我个人推荐 Foundation。
以表单为例,Bootstrap 的代码:
<form>
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" placeholder="Name">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" id="email" placeholder="Email">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
Foundation 的代码:
<form>
<div class="row column">
<label>Name
<input type="text" id="name" placeholder="Name">
</label>
<label>Email
<input type="email" id="email" placeholder="Email">
</label>
<button type="submit" class="button">Submit</button>
</div>
</form>
再以导航栏为例,Bootstrap 的代码:
<nav class="navbar navbar-default">
<div class="navbar-header">
<a class="navbar-brand" href="#">Site Title</a>
</div>
<ul class="nav navbar-nav">
<li><a href="#">Item One</a></li>
<li><a href="#">Item Two</a></li>
<li><a href="#">Item Three</a></li>
</ul>
</nav>
Foundation 的代码:
<div class="top-bar">
<div class="top-bar-left">
<ul class="menu">
<li class="menu-text">Site Title</li>
<li><a href="#">Item One</a></li>
<li><a href="#">Item Two</a></li>
<li><a href="#">Item Three</a></li>
</ul>
</div>
</div>
可以看到,相比之下 Foundation 的代码更简洁,在页面结构更复杂、代码量更大的情况下,这会带来显著的好处。
#5 楼 @u1370743666 可是通常文章哪有“目录,摘要,后记”这些东西呢
#3 楼 @anthonyhl 这个付费阅读是针对文章而不是针对电子书的,针对电子书的多看阅读已经做得很好了。
#11 楼 @lihuazhang duet display 也看到了,当时没有选择,原因想不起来了。Air Display 3 用数据线连接一台 iPad mini 2,效果比较完美,不卡顿。
#7 楼 @lihuazhang Air Display 3,使用挺简单。
#43 楼 @yort_feng 基于朋友圈的熟人分享可能会好一点,类似于打赏