<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>fengfans (fengfans)</title>
    <link>https://ruby-china.org/fengfans</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>使用 Kamal 部署 Rails7 项目，提示数据库域名无法解析</title>
      <description>&lt;p&gt;本地 Macos 开发，本地 ubuntu22.04 部署，本地 docker 镜像封装成两个镜像，一个是 mysql 数据库，一个是 web 端，本地测试运行正常后，通过 Kamal 的 kamal setup 指令部署到 ubuntu，提示数据库域名无法解析，请问这样的运行环境，确保 docker 间正常通讯，网络配置有什么要求吗？&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sun, 05 Nov 2023 13:21:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/43455</link>
      <guid>https://ruby-china.org/topics/43455</guid>
    </item>
    <item>
      <title>nginx，mina 与 puma 实现 rails 项目自动化部署，如何实现部署后 puma 自动启动。</title>
      <description>&lt;p&gt;目前部署到 ubuntu 正常，本地开发主机 macos 执行 rails s 正常，但是部署到 ubuntu 后，puma 就不启动。即使在/var/www/html/current/目录下执行 bundle exec puma -C /var/www/html/current/config/puma.rb命令，通过访问rails项目也打不开默认页面，提示超时访问。&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;nginx.conf
user www-data&lt;span class="p"&gt;;&lt;/span&gt;
worker_processes auto&lt;span class="p"&gt;;&lt;/span&gt;
pid /run/nginx.pid&lt;span class="p"&gt;;&lt;/span&gt;
include /etc/nginx/modules-enabled/&lt;span class="k"&gt;*&lt;/span&gt;.conf&lt;span class="p"&gt;;&lt;/span&gt;

events &lt;span class="o"&gt;{&lt;/span&gt;
    worker_connections 768&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c"&gt;# multi_accept on;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

http &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="c"&gt;##&lt;/span&gt;
    &lt;span class="c"&gt;# Basic Settings&lt;/span&gt;
    &lt;span class="c"&gt;##&lt;/span&gt;

    sendfile on&lt;span class="p"&gt;;&lt;/span&gt;
    tcp_nopush on&lt;span class="p"&gt;;&lt;/span&gt;
    types_hash_max_size 2048&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c"&gt;# server_tokens off;&lt;/span&gt;

    &lt;span class="c"&gt;# server_names_hash_bucket_size 64;&lt;/span&gt;
    &lt;span class="c"&gt;# server_name_in_redirect off;&lt;/span&gt;

    include /etc/nginx/mime.types&lt;span class="p"&gt;;&lt;/span&gt;
    default_type application/octet-stream&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;##&lt;/span&gt;
    &lt;span class="c"&gt;# SSL Settings&lt;/span&gt;
    &lt;span class="c"&gt;##&lt;/span&gt;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;# Dropping SSLv3, ref: POODLE&lt;/span&gt;
    ssl_prefer_server_ciphers on&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;##&lt;/span&gt;
    &lt;span class="c"&gt;# Logging Settings&lt;/span&gt;
    &lt;span class="c"&gt;##&lt;/span&gt;

    access_log /var/log/nginx/access.log&lt;span class="p"&gt;;&lt;/span&gt;
    error_log /var/log/nginx/error.log&lt;span class="p"&gt;;&lt;/span&gt;
    upstream puma&lt;span class="o"&gt;{&lt;/span&gt;
        server unix:/var/www/html/shared/tmp/sockets/puma.sock &lt;span class="nv"&gt;fail_timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="c"&gt;##&lt;/span&gt;
    &lt;span class="c"&gt;# Gzip Settings&lt;/span&gt;
    &lt;span class="c"&gt;##&lt;/span&gt;

    &lt;span class="nb"&gt;gzip &lt;/span&gt;on&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;# gzip_vary on;&lt;/span&gt;
    &lt;span class="c"&gt;# gzip_proxied any;&lt;/span&gt;
    &lt;span class="c"&gt;# gzip_comp_level 6;&lt;/span&gt;
    &lt;span class="c"&gt;# gzip_buffers 16 8k;&lt;/span&gt;
    &lt;span class="c"&gt;# gzip_http_version 1.1;&lt;/span&gt;
    &lt;span class="c"&gt;# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;&lt;/span&gt;

    &lt;span class="c"&gt;##&lt;/span&gt;
    &lt;span class="c"&gt;# Virtual Host Configs&lt;/span&gt;
    &lt;span class="c"&gt;##&lt;/span&gt;

    include /etc/nginx/conf.d/&lt;span class="k"&gt;*&lt;/span&gt;.conf&lt;span class="p"&gt;;&lt;/span&gt;
    include /etc/nginx/sites-enabled/&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;


&lt;span class="c"&gt;#mail {&lt;/span&gt;
&lt;span class="c"&gt;#   # See sample authentication script at:&lt;/span&gt;
&lt;span class="c"&gt;#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#   # auth_http localhost/auth.php;&lt;/span&gt;
&lt;span class="c"&gt;#   # pop3_capabilities "TOP" "USER";&lt;/span&gt;
&lt;span class="c"&gt;#   # imap_capabilities "IMAP4rev1" "UIDPLUS";&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#   server {&lt;/span&gt;
&lt;span class="c"&gt;#       listen     localhost:110;&lt;/span&gt;
&lt;span class="c"&gt;#       protocol   pop3;&lt;/span&gt;
&lt;span class="c"&gt;#       proxy      on;&lt;/span&gt;
&lt;span class="c"&gt;#   }&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#   server {&lt;/span&gt;
&lt;span class="c"&gt;#       listen     localhost:143;&lt;/span&gt;
&lt;span class="c"&gt;#       protocol   imap;&lt;/span&gt;
&lt;span class="c"&gt;#       proxy      on;&lt;/span&gt;
&lt;span class="c"&gt;#   }&lt;/span&gt;
&lt;span class="c"&gt;#}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;default
&lt;span class="c"&gt;##&lt;/span&gt;
&lt;span class="c"&gt;# You should look at the following URL's in order to grasp a solid understanding&lt;/span&gt;
&lt;span class="c"&gt;# of Nginx configuration files in order to fully unleash the power of Nginx.&lt;/span&gt;
&lt;span class="c"&gt;# https://www.nginx.com/resources/wiki/start/&lt;/span&gt;
&lt;span class="c"&gt;# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/&lt;/span&gt;
&lt;span class="c"&gt;# https://wiki.debian.org/Nginx/DirectoryStructure&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# In most cases, administrators will remove this file from sites-enabled/ and&lt;/span&gt;
&lt;span class="c"&gt;# leave it as reference inside of sites-available where it will continue to be&lt;/span&gt;
&lt;span class="c"&gt;# updated by the nginx packaging team.&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# This file will automatically load configuration files provided by other&lt;/span&gt;
&lt;span class="c"&gt;# applications, such as Drupal or Wordpress. These applications will be made&lt;/span&gt;
&lt;span class="c"&gt;# available underneath a path with that package name, such as /drupal8.&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.&lt;/span&gt;
&lt;span class="c"&gt;##&lt;/span&gt;

&lt;span class="c"&gt;# Default server configuration&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
server &lt;span class="o"&gt;{&lt;/span&gt;
    listen 80 default_server&lt;span class="p"&gt;;&lt;/span&gt;
    listen &lt;span class="o"&gt;[&lt;/span&gt;::]:80 default_server&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;# SSL configuration&lt;/span&gt;
    &lt;span class="c"&gt;#&lt;/span&gt;
    &lt;span class="c"&gt;# listen 443 ssl default_server;&lt;/span&gt;
    &lt;span class="c"&gt;# listen [::]:443 ssl default_server;&lt;/span&gt;
    &lt;span class="c"&gt;#&lt;/span&gt;
    &lt;span class="c"&gt;# Note: You should disable gzip for SSL traffic.&lt;/span&gt;
    &lt;span class="c"&gt;# See: https://bugs.debian.org/773332&lt;/span&gt;
    &lt;span class="c"&gt;#&lt;/span&gt;
    &lt;span class="c"&gt;# Read up on ssl_ciphers to ensure a secure configuration.&lt;/span&gt;
    &lt;span class="c"&gt;# See: https://bugs.debian.org/765782&lt;/span&gt;
    &lt;span class="c"&gt;#&lt;/span&gt;
    &lt;span class="c"&gt;# Self signed certs generated by the ssl-cert package&lt;/span&gt;
    &lt;span class="c"&gt;# Don't use them in a production server!&lt;/span&gt;
    &lt;span class="c"&gt;#&lt;/span&gt;
    &lt;span class="c"&gt;# include snippets/snakeoil.conf;&lt;/span&gt;

    root /var/www/html/current/public&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;# Add index.php to the list if you are using PHP&lt;/span&gt;
    index index.html index.htm index.nginx-debian.html&lt;span class="p"&gt;;&lt;/span&gt;

    server_name _&lt;span class="p"&gt;;&lt;/span&gt;

    location / &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c"&gt;# First attempt to serve request as file, then&lt;/span&gt;
        &lt;span class="c"&gt;# as directory, then fall back to displaying a 404.&lt;/span&gt;
        try_files &lt;span class="nv"&gt;$uri&lt;/span&gt; &lt;span class="nv"&gt;$uri&lt;/span&gt;/ &lt;span class="o"&gt;=&lt;/span&gt;404&lt;span class="p"&gt;;&lt;/span&gt;
            proxy_set_header X-Forwarded-For &lt;span class="nv"&gt;$proxy_add_x_forwarded_for&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            proxy_set_header Host &lt;span class="nv"&gt;$http_host&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            proxy_redirect off&lt;span class="p"&gt;;&lt;/span&gt;
            proxy_pass http://unix:/var/www/html/shared/tmp/sockets/puma.sock&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="o"&gt;}&lt;/span&gt;
    try_files &lt;span class="nv"&gt;$uri&lt;/span&gt;/index.html &lt;span class="nv"&gt;$uri&lt;/span&gt; @puma&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;# pass PHP scripts to FastCGI server&lt;/span&gt;
    &lt;span class="c"&gt;#&lt;/span&gt;
    &lt;span class="c"&gt;#location ~ \.php$ {&lt;/span&gt;
    &lt;span class="c"&gt;#   include snippets/fastcgi-php.conf;&lt;/span&gt;
    &lt;span class="c"&gt;#&lt;/span&gt;
    &lt;span class="c"&gt;#   # With php-fpm (or other unix sockets):&lt;/span&gt;
    &lt;span class="c"&gt;#   fastcgi_pass unix:/run/php/php7.4-fpm.sock;&lt;/span&gt;
    &lt;span class="c"&gt;#   # With php-cgi (or other tcp sockets):&lt;/span&gt;
    &lt;span class="c"&gt;#   fastcgi_pass 127.0.0.1:9000;&lt;/span&gt;
    &lt;span class="c"&gt;#}&lt;/span&gt;

    &lt;span class="c"&gt;# deny access to .htaccess files, if Apache's document root&lt;/span&gt;
    &lt;span class="c"&gt;# concurs with nginx's one&lt;/span&gt;
    &lt;span class="c"&gt;#&lt;/span&gt;
    &lt;span class="c"&gt;#location ~ /\.ht {&lt;/span&gt;
    &lt;span class="c"&gt;#   deny all;&lt;/span&gt;
    &lt;span class="c"&gt;#}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;puma.rb
environment &lt;span class="s2"&gt;"production"&lt;/span&gt;

app_name &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"cool"&lt;/span&gt;
application_path &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"/var/www/html/"&lt;/span&gt;
directory &lt;span class="s2"&gt;"/var/www/html/current"&lt;/span&gt;

workers 2
threads 1,4



pidfile &lt;span class="s2"&gt;"/var/www/html/shared/tmp/pids/puma.pid"&lt;/span&gt;
state_path &lt;span class="s2"&gt;"/var/www/html/shared/tmp/sockets/puma.state"&lt;/span&gt;
stdout_redirect &lt;span class="s2"&gt;"/var/www/html/shared/log/puma.stdout.log"&lt;/span&gt;, &lt;span class="s2"&gt;"/var/www/html/shared/log/puma.stderr.log"&lt;/span&gt;
&lt;span class="nb"&gt;bind&lt;/span&gt; &lt;span class="s2"&gt;"unix:/var/www/html/shared/tmp/sockets/puma.sock"&lt;/span&gt;
activate_control_app &lt;span class="s1"&gt;'unix:/var/www/html/shared/tmp/sockets/pumactl.sock'&lt;/span&gt;


on_restart &lt;span class="k"&gt;do
  &lt;/span&gt;puts &lt;span class="s1"&gt;'On restart....'&lt;/span&gt;
end
preload_app!
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>fengfans</author>
      <pubDate>Sun, 29 Oct 2023 16:39:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/43427</link>
      <guid>https://ruby-china.org/topics/43427</guid>
    </item>
    <item>
      <title>mina 部署 rails 项目，求 secret_key_base 有关的配置流程，技术背景，求大神们指点迷津。</title>
      <description>&lt;p&gt;开发主机，项目目录下，执行 mina deploy --trace，运行到
Migrating database
       rake aborted!
提示：ArgumentError: Missing &lt;code&gt;secret_key_base&lt;/code&gt; for 'production' environment, set this string with &lt;code&gt;bin/rails credentials:edit&lt;/code&gt;
使用 rails 6.1.7.6,ruby 3.0.0。&lt;/p&gt;

&lt;p&gt;deploy.rb 配置文件如下&lt;/p&gt;
&lt;h2 id="frozen_string_literal: true"&gt;frozen_string_literal: true&lt;/h2&gt;
&lt;p&gt;require 'mina/rails'
require 'mina/git'
require 'mina/rbenv'
require 'mina/bundler'&lt;/p&gt;
&lt;h2 id="require 'mina/rbenv'  # for rbenv support. (https://rbenv.org)"&gt;require 'mina/rbenv'  # for rbenv support. (&lt;a href="https://rbenv.org" rel="nofollow" target="_blank"&gt;https://rbenv.org&lt;/a&gt;)&lt;/h2&gt;&lt;h2 id="require 'mina/rvm'    # for rvm support. (https://rvm.io)"&gt;require 'mina/rvm'    # for rvm support. (&lt;a href="https://rvm.io" rel="nofollow" target="_blank"&gt;https://rvm.io&lt;/a&gt;)&lt;/h2&gt;&lt;h2 id="Basic settings:"&gt;Basic settings:&lt;/h2&gt;&lt;h2 id="domain       - The hostname to SSH to."&gt;domain       - The hostname to SSH to.&lt;/h2&gt;&lt;h2 id="deploy_to    - Path to deploy into."&gt;deploy_to    - Path to deploy into.&lt;/h2&gt;&lt;h2 id="repository   - Git repo to clone from. (needed by mina/git)"&gt;repository   - Git repo to clone from. (needed by mina/git)&lt;/h2&gt;&lt;h2 id="branch       - Branch name to deploy. (needed by mina/git)"&gt;branch       - Branch name to deploy. (needed by mina/git)&lt;/h2&gt;
&lt;p&gt;set :application_name, 'cool'
set :domain, '127.0.0.1'&lt;/p&gt;

&lt;p&gt;set :deploy_to, '/var/www/html'
set :repository, 'git@gitee.com:PP_heroGrow/cool.git'
set :branch, 'main'&lt;/p&gt;
&lt;h2 id="Optional settings:"&gt;Optional settings:&lt;/h2&gt;
&lt;p&gt;set :user, 'f'          # Username in the server to SSH to.
   set :port, '8022'           # SSH port number.
   set :forward_agent, false     # SSH forward_agent.&lt;/p&gt;
&lt;h2 id="Shared dirs and files will be symlinked into the app-folder by the 'deploy:link_shared_paths' step."&gt;Shared dirs and files will be symlinked into the app-folder by the 'deploy:link_shared_paths' step.&lt;/h2&gt;&lt;h2 id="Some plugins already add folders to shared_dirs like mina/rails add public/assets, vendor/bundle and many more"&gt;Some plugins already add folders to shared_dirs like &lt;code&gt;mina/rails&lt;/code&gt; add &lt;code&gt;public/assets&lt;/code&gt;, &lt;code&gt;vendor/bundle&lt;/code&gt; and many more&lt;/h2&gt;&lt;h2 id="run mina -d to see all folders and files already included in shared_dirs and shared_files"&gt;run &lt;code&gt;mina -d&lt;/code&gt; to see all folders and files already included in &lt;code&gt;shared_dirs&lt;/code&gt; and &lt;code&gt;shared_files&lt;/code&gt;
&lt;/h2&gt;&lt;h2 id="set :shared_dirs, fetch(:shared_dirs, []).push('public/assets')"&gt;set :shared_dirs, fetch(:shared_dirs, []).push('public/assets')&lt;/h2&gt;&lt;h2 id="set :shared_files, fetch(:shared_files, []).push('config/database.yml', 'config/secrets.yml')"&gt;set :shared_files, fetch(:shared_files, []).push('config/database.yml', 'config/secrets.yml')&lt;/h2&gt;&lt;h2 id="This task is the environment that is loaded for all remote run commands, such as"&gt;This task is the environment that is loaded for all remote run commands, such as&lt;/h2&gt;&lt;h2 id="mina deploy or mina rake."&gt;
&lt;code&gt;mina deploy&lt;/code&gt; or &lt;code&gt;mina rake&lt;/code&gt;.&lt;/h2&gt;
&lt;p&gt;task :remote_environment do
  # If you're using rbenv, use this to load the rbenv environment.
  # Be sure to commit your .ruby-version or .rbenv-version to your repository.
  invoke :'rbenv:load'&lt;/p&gt;

&lt;p&gt;# For those using RVM, use this to load an RVM version@gemset.
  # invoke :'rvm:use', 'ruby-2.5.3@default'
end&lt;/p&gt;
&lt;h2 id="Put any custom commands you need to run at setup"&gt;Put any custom commands you need to run at setup&lt;/h2&gt;&lt;h2 id="All paths in shared_dirs and shared_paths will be created on their own."&gt;All paths in &lt;code&gt;shared_dirs&lt;/code&gt; and &lt;code&gt;shared_paths&lt;/code&gt; will be created on their own.&lt;/h2&gt;
&lt;p&gt;task :setup do
  # command %{rbenv install 2.5.3 --skip-existing}
  # command %{rvm install ruby-2.5.3}
  # command %{gem install bundler}
end&lt;/p&gt;

&lt;p&gt;desc 'Deploys the current version to the server.'
task :deploy do
  # uncomment this line to make sure you pushed your local branch to the remote origin
  # invoke :'git:ensure_pushed'
  deploy do
    # Put things that will set up an empty directory into a fully set-up
    # instance of your project.
    invoke :'git:clone'
    invoke :'deploy:link_shared_paths'
    invoke :'bundle:install'
    invoke :'rails:db_migrate'
    invoke :'rails:assets_precompile'
    invoke :'deploy:cleanup'&lt;/p&gt;

&lt;p&gt;on :launch do
      in_path(fetch(:current_path)) do
        command %(mkdir -p tmp/)
        command %(touch tmp/restart.txt)
      end
    end
  end&lt;/p&gt;

&lt;p&gt;# you can use &lt;code&gt;run :local&lt;/code&gt; to run tasks on local machine before or after the deploy scripts
  # run(:local){ say 'done' }
end&lt;/p&gt;
&lt;h2 id="For help in making your deploy script, see the Mina documentation:"&gt;For help in making your deploy script, see the Mina documentation:&lt;/h2&gt;
&lt;p&gt;#&lt;/p&gt;
&lt;h2 id="- https://github.com/mina-deploy/mina/tree/master/docs"&gt;- &lt;a href="https://github.com/mina-deploy/mina/tree/master/docs" rel="nofollow" target="_blank"&gt;https://github.com/mina-deploy/mina/tree/master/docs&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;请问使用 mina 部署 rails 项目时，生产环境下的 secret_key_base 如何配置？基本流程是什么？求专家指点迷津。&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Mon, 23 Oct 2023 22:13:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/43413</link>
      <guid>https://ruby-china.org/topics/43413</guid>
    </item>
    <item>
      <title>现在大家都在用什么软件做 Ruby on Rails 的 IDE？</title>
      <description>&lt;p&gt;textmate 还有人用吗？sublime text 还是 atom，还是其他的东东。&lt;/p&gt;

&lt;p&gt;sublime text 的插件清单与配置指南，是否能共享一下？&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sun, 10 Apr 2022 18:50:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/42288</link>
      <guid>https://ruby-china.org/topics/42288</guid>
    </item>
    <item>
      <title>科大毕业，在高校做 IT 技术工作，业余写网文，只为做一次思想实验</title>
      <description>&lt;p&gt;如果人类个体是一台台计算机，
那么我们执行的算法是什么呢？
我在创作《皮皮英雄成长记》，
为这个假设找到一个满意的答案……&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mp.weixin.qq.com/mp/homepage?__biz=Mzg4MzExNDY3NQ==&amp;amp;hid=1&amp;amp;sn=714280668c17a5cd5f2fa6bab2db55f8&amp;amp;scene=18#wechat_redirect" rel="nofollow" target="_blank"&gt;http://mp.weixin.qq.com/mp/homepage?__biz=Mzg4MzExNDY3NQ==&amp;amp;hid=1&amp;amp;sn=714280668c17a5cd5f2fa6bab2db55f8&amp;amp;scene=18#wechat_redirect&lt;/a&gt;&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sun, 30 Jan 2022 22:58:21 +0800</pubDate>
      <link>https://ruby-china.org/topics/42111</link>
      <guid>https://ruby-china.org/topics/42111</guid>
    </item>
    <item>
      <title>哪个基于 Rails 的开源博客系统比较开放、体验较好？</title>
      <description>&lt;p&gt;急求一个，想快速搭建起来自用。后期慢慢扩展功能、自己维护。求推荐。&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Fri, 27 Aug 2021 07:20:38 +0800</pubDate>
      <link>https://ruby-china.org/topics/41622</link>
      <guid>https://ruby-china.org/topics/41622</guid>
    </item>
    <item>
      <title>创作卡壳了，急等！</title>
      <description>&lt;p&gt;如今，关于人工智能的故事（《皮皮英雄成长记》）创作已达 15 万字，第一部接近尾声。但是，遇到了一个科学领域知识的空白，现在急需大家的帮助。
       故事背景写到怪兽数量暴增，仍然不停围攻人类在 Z64 星的城市。人类在城市地下构建了深达 100 米的庞大地下通道，并用加厚的合金金属外壳，隔绝小型怪兽、巨齿虫的渗透。
       但是，怪兽背后的 T32 星人，非常需要进入其中一座城市——太莫城下的远古遗迹内，找到操纵怪兽的一种秘密方法，但由于合金金属外壳的存在，无法突破。
       初步构思，T32 星人驱使怪兽用化学方法或金属方法（类似镓）突破合金外壳，请懂得金属材料、化学腐蚀方面知识的朋友帮忙提供理论知识与技术实践方面的材料支撑，确认现在或未来 70 年内可以实现类似需求，最好提供基础原材料名称、获取途径、加工工艺等相关信息，如果可行我再行创作。&lt;/p&gt;

&lt;p&gt;作者：想像力的桥&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sat, 27 Mar 2021 20:30:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/41089</link>
      <guid>https://ruby-china.org/topics/41089</guid>
    </item>
    <item>
      <title>IT 人方可读得轻松的科幻神秘小说</title>
      <description>&lt;p&gt;一部只有从事 it 工作与专业学习的你，才会轻松构建故事画面的科幻神秘小说，从业越久越容易！&lt;/p&gt;

&lt;p&gt;阅读链接： &lt;a href="https://book.qidian.com/info/1026709199" rel="nofollow" target="_blank"&gt;https://book.qidian.com/info/1026709199&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;微信公众号：皮皮英雄成长记&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/fengfans/848bfedd-ae40-4706-9ec0-c0119b6c7681.jpg!large" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sat, 20 Mar 2021 11:48:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/41049</link>
      <guid>https://ruby-china.org/topics/41049</guid>
    </item>
    <item>
      <title>2016 款的 MacBook Pro，键盘如何保护不影响手感？</title>
      <description>&lt;p&gt;机器的键盘刚免费更换了，但客服特别提醒不要进灰、进水、进 anything.....求教各位大神，这款机器的键盘如何保护？是不是要用键盘套？用哪款不影响散热、手感。。。。求推荐。&lt;img src="https://l.ruby-china.com/photo/2020/6709e200-abf8-4bb4-a1f9-698fd44fd269.jpg!large" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Thu, 23 Jan 2020 20:46:50 +0800</pubDate>
      <link>https://ruby-china.org/topics/39464</link>
      <guid>https://ruby-china.org/topics/39464</guid>
    </item>
    <item>
      <title>大家在家搭建的开发测试环境，服务端用什么硬件？</title>
      <description>&lt;p&gt;是在 mac 上安装虚拟机，还是另购台式机或服务器，还是租用云端的服务？近日想学习 redis，mac 的性能比较弱，请教大神们的解决方案。如果本地部署硬件，静音问题如何解决的？&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sat, 18 Jan 2020 10:19:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/39454</link>
      <guid>https://ruby-china.org/topics/39454</guid>
    </item>
    <item>
      <title>wechat-rails 使用问题：http://myurl/wechat，APPID 参数错误</title>
      <description>
&lt;p&gt;&amp;lt;!DOCTYPE html&amp;gt;

    &lt;/p&gt;
        抱歉，出错了
        
        
        &amp;lt;!--  --&amp;gt;
        
    
    
        
            &lt;i class="weui_icon_info weui_icon_msg"&gt;&lt;/i&gt;
            
                                &lt;h4 class="weui_msg_title"&gt;AppID 参数错误&lt;/h4&gt;
                            
            &amp;lt;!-- (KwbUkA0306shc1) --&amp;gt;
        
    

以上是调试工具的源码信息。

&lt;p&gt;下面的链接是我输入标题所示链接后，经由浏览器返回的完整链接，奇怪的是 appid 后面怎么没有我的真实 ID，另外
wechat/后面的callback是要自己代码实现的吗？有没有代码示例？
&lt;a href="https://open.weixin.qq.com/connect/qrconnect?appid&amp;amp;redirect_uri=http%3A%2F%2Fweixin.fengfanskb.top%2Fwechat%2Fcallback&amp;amp;response_type=code&amp;amp;scope=snsapi_login&amp;amp;state=3e3cbcc65f7b927683c73a6cfd151de07d86805c5b1f7eda" rel="nofollow" target="_blank"&gt;https://open.weixin.qq.com/connect/qrconnect?appid&amp;amp;redirect_uri=http%3A%2F%2Fweixin.fengfanskb.top%2Fwechat%2Fcallback&amp;amp;response_type=code&amp;amp;scope=snsapi_login&amp;amp;state=3e3cbcc65f7b927683c73a6cfd151de07d86805c5b1f7eda&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;由于是新手，RAILS 与微信公众号的开发一头雾水，求大神指教。&lt;/p&gt;
</description>
      <author>fengfans</author>
      <pubDate>Sun, 17 Nov 2019 20:49:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/39255</link>
      <guid>https://ruby-china.org/topics/39255</guid>
    </item>
    <item>
      <title>capistrano+nginx，部署成功后只显示 nginx 默认页面</title>
      <description>&lt;p&gt;部署成功后，只显示 nginx 默认页面，不显示 rails 页面，之前服务器回滚了一下，可能 nginx 的配置变化了。现在查找问题可以借助什么工作，怎样的思路来进行，请坛中大神赐教。&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Thu, 10 Oct 2019 05:07:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/39128</link>
      <guid>https://ruby-china.org/topics/39128</guid>
    </item>
    <item>
      <title>rails g wechat:session,出现以下提示，何处出了问题？</title>
      <description>&lt;p&gt;rails 5.0.7+ruby 2.3.1+devise+wechat+omniauth-wechat-oauth2&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
/Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/railties-5.0.7.2/lib/rails/generators/migration.rb:41:in &lt;span class="sb"&gt;`&lt;/span&gt;set_migration_assigns!&lt;span class="s1"&gt;': private method `next_migration_number'&lt;/span&gt; called &lt;span class="k"&gt;for &lt;/span&gt;Wechat::Generators::SessionGenerator:Class &lt;span class="o"&gt;(&lt;/span&gt;NoMethodError&lt;span class="o"&gt;)&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/railties-5.0.7.2/lib/rails/generators/migration.rb:57:in &lt;span class="sb"&gt;`&lt;/span&gt;migration_template&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/wechat-0.11.5/lib/generators/wechat/session_generator.rb:14:in `copy_wechat_sessions_migration'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/thor-0.20.3/lib/thor/command.rb:27:in &lt;span class="sb"&gt;`&lt;/span&gt;run&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/thor-0.20.3/lib/thor/invocation.rb:133:in &lt;span class="sb"&gt;`&lt;/span&gt;block &lt;span class="k"&gt;in &lt;/span&gt;invoke_all&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/thor-0.20.3/lib/thor/invocation.rb:133:in `each'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/thor-0.20.3/lib/thor/invocation.rb:133:in &lt;span class="sb"&gt;`&lt;/span&gt;map&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/thor-0.20.3/lib/thor/invocation.rb:133:in `invoke_all'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/thor-0.20.3/lib/thor/group.rb:232:in &lt;span class="sb"&gt;`&lt;/span&gt;dispatch&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/railties-5.0.7.2/lib/rails/generators.rb:180:in &lt;span class="sb"&gt;`&lt;/span&gt;invoke&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/railties-5.0.7.2/lib/rails/commands/generate.rb:13:in `&amp;lt;top (required)&amp;gt;'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in &lt;span class="sb"&gt;`&lt;/span&gt;require&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `block in require'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:259:in &lt;span class="sb"&gt;`&lt;/span&gt;load_dependency&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/activesupport-5.0.7.2/lib/active_support/dependencies.rb:293:in `require'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:138:in &lt;span class="sb"&gt;`&lt;/span&gt;require_command!&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:145:in `generate_or_destroy'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:60:in &lt;span class="sb"&gt;`&lt;/span&gt;generate&lt;span class="s1"&gt;'
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:49:in `run_command!'&lt;/span&gt;
    from /Users/f/.rvm/gems/ruby-2.3.1@rails5new/gems/railties-5.0.7.2/lib/rails/commands.rb:18:in &lt;span class="sb"&gt;`&lt;/span&gt;&amp;lt;top &lt;span class="o"&gt;(&lt;/span&gt;required&lt;span class="o"&gt;)&amp;gt;&lt;/span&gt;&lt;span class="s1"&gt;'
    from bin/rails:4:in `require'&lt;/span&gt;
    from bin/rails:4:in &lt;span class="sb"&gt;`&lt;/span&gt;&amp;lt;main&amp;gt;&lt;span class="s1"&gt;'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <author>fengfans</author>
      <pubDate>Sun, 01 Sep 2019 23:34:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/39006</link>
      <guid>https://ruby-china.org/topics/39006</guid>
    </item>
    <item>
      <title>[已经解决] production 环境无法显示 bootstrap 中的 CSS 样式</title>
      <description>&lt;p&gt;同一个模板，添加了 bootstrap 的样式，但是在开发模式正常显示，在开发模式就不显示，现在一点思路都没有，请各位大神指点。需要什么文件请给个提示。&lt;/p&gt;

&lt;p&gt;系统环境：
Capistrano+Nginx + Passenger + Rails&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Tue, 20 Aug 2019 23:05:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/38961</link>
      <guid>https://ruby-china.org/topics/38961</guid>
    </item>
    <item>
      <title>大家的个人博客是定制开发还是开源系统</title>
      <description>&lt;p&gt;我想建立一个个人博客站点，向大家了解一下。&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sat, 29 Jun 2019 10:19:00 +0800</pubDate>
      <link>https://ruby-china.org/topics/38764</link>
      <guid>https://ruby-china.org/topics/38764</guid>
    </item>
    <item>
      <title>Ruby 开发的业务流程引擎有吗？</title>
      <description>&lt;p&gt;要搭一个业务流程引擎 (bpm)，解决连接不同应用系统的业务流程，开发基于后端数据库的移动端应用，请求推荐。&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Mon, 22 Apr 2019 06:09:10 +0800</pubDate>
      <link>https://ruby-china.org/topics/38434</link>
      <guid>https://ruby-china.org/topics/38434</guid>
    </item>
    <item>
      <title>根据 ID，查找后没有记录如何处理？</title>
      <description>&lt;p&gt;异常及代码如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;RecordNotFound&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="no"&gt;SportsController&lt;/span&gt;&lt;span class="c1"&gt;#show&lt;/span&gt;
&lt;span class="no"&gt;Couldn&lt;/span&gt;&lt;span class="s1"&gt;'t find Sport with '&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;

&lt;span class="no"&gt;Extracted&lt;/span&gt; &lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;around&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="c1"&gt;#23):&lt;/span&gt;
&lt;span class="mi"&gt;21&lt;/span&gt;
&lt;span class="mi"&gt;22&lt;/span&gt;
&lt;span class="mi"&gt;23&lt;/span&gt;
&lt;span class="mi"&gt;24&lt;/span&gt;
&lt;span class="mi"&gt;25&lt;/span&gt;
&lt;span class="mi"&gt;26&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;show&lt;/span&gt;

       &lt;span class="vi"&gt;@sport&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Sport&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
       &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@sport.blank&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;
        &lt;span class="vi"&gt;@a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Activity&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="vi"&gt;@sport&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Sport&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vi"&gt;@a.sport_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我想实现这样的功能：
      如果查询的 ID 存在，即继续后面的查询。
     否则，执行以下代码&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="vi"&gt;@a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Activity&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="vi"&gt;@sport&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Sport&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vi"&gt;@a.sport_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;再继续后面的查询。&lt;/p&gt;

&lt;p&gt;请大家指教，用什么方法实现&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sun, 11 Feb 2018 16:33:42 +0800</pubDate>
      <link>https://ruby-china.org/topics/35029</link>
      <guid>https://ruby-china.org/topics/35029</guid>
    </item>
    <item>
      <title>关于一对多模型关联中，子模型记录的编辑功能的实现。</title>
      <description>&lt;p&gt;需要建立两个模型，模型 1 为 sport，记录 30 天的体育活动完成情况&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2018/2bb9cb55-2fd2-47fd-acd3-7af34fb2ddab.png!large" title="" alt=""&gt;
模型 2 为 activity，记录当天完成的活动有哪些？具体成绩如何。当前 view 对应的是 sport_controller 中的 show 这个 action。
&lt;img src="https://l.ruby-china.com/photo/2018/c533e1fb-a13b-4d9f-b1e4-2cd930e4f54a.png!large" title="" alt=""&gt;
求教大家，如何在第二个图的界面中实现编辑当前体育活动功能？&lt;/p&gt;

&lt;p&gt;模型关联定义如下
sport 模型中
  has_many :activities&lt;/p&gt;

&lt;p&gt;activity 模型中
  belongs_to :sport&lt;/p&gt;

&lt;p&gt;问题清单：
sport_controller 中的 show 这个 action 的代码如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;show&lt;/span&gt;
    &lt;span class="n"&gt;console&lt;/span&gt;
    &lt;span class="vi"&gt;@sport&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Sport&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="vi"&gt;@activities&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@sport.activities&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;view 的代码如下：&lt;/p&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="vi"&gt;@activities.each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;acname&lt;/span&gt;  &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;actime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_s&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grading&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;unit&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;
       &lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;link_to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"编辑"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;edit_sport_activity_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
   &lt;span class="cp"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;编辑链接中，使用 edit_sport_activity_path(a) 不好用。这块应该如何写，才参在 activity 控制器的 edit 模板中，实现某一活动记录的内容编辑。&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sun, 11 Feb 2018 10:39:58 +0800</pubDate>
      <link>https://ruby-china.org/topics/35027</link>
      <guid>https://ruby-china.org/topics/35027</guid>
    </item>
    <item>
      <title>最近在选型基础平台，求建议</title>
      <description>&lt;p&gt;数字化校园，有必要用到 esb 吗？微服务架构中需要吗？&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Fri, 21 Apr 2017 20:42:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/32846</link>
      <guid>https://ruby-china.org/topics/32846</guid>
    </item>
    <item>
      <title>最新的 Macbook Pro，大家有关注吗？</title>
      <description>&lt;p&gt;适合入手做开发吗？会不会有不适的问题。&lt;/p&gt;</description>
      <author>fengfans</author>
      <pubDate>Sat, 05 Nov 2016 21:05:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/31528</link>
      <guid>https://ruby-china.org/topics/31528</guid>
    </item>
  </channel>
</rss>
