• 之前学习Rails的路径可能不对。Rails对于我这样一个业余的、时间精力有限的开发者来说,实在太复杂、变化太快了。不管是开发、部署还是维护,Rails总能给我带来各种问题,让我陷入困境。 回过头来看,正确的学习路径也许是Ruby→Sinatra→Padrino→Rails。一门一门学习,一门一门掌握,一门一门精通,直至融会贯通,不管面对怎样的开发需求,都能游刃有余。 发现问题,及时调整,什么时候都不晚。现在就开始学习Sinatra吧,简单的需求,本来就应该用简单的工具、简单的方法来满足!

  • Ruby 25 岁生日 #ruby25 at 2018年02月24日

    祝 Ruby 生日快乐!😀

  • 不过不光是你的中奖概率降低了,别人的中奖概率也同样降低了,所以说到底还是公平的 😀

  • Mina 升 1.0 后的差异 at 2017年03月27日

    提供一个可用的 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, 'git@github.com: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 的问题了。

  • 《Rails 指南》发布 at 2017年02月26日

    谢谢,是五笔输入错误,已把修正推送到 GitHub,thx a lot!

  • 《Rails 指南》发布 at 2017年02月23日

    非常抱歉,这一章按计划是由我负责翻译的,还需要一些时日才能出炉,不好意思让您久等 👣

  • 原来是要使用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 文本编辑器“重度+初级”用户,报名捧场...

创业者,站长,程序员,产品经理