<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>aoreki (Ln)</title>
    <link>https://ruby-china.org/aoreki</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>一年 Rails 开发经验应该是什么样的水平？</title>
      <description>&lt;p&gt;因为喜欢 ruby，所以想从事 rails 开发，但是看到招聘信息至少都需要 1 年 rails 开发经验，所以有此一问。&lt;/p&gt;

&lt;p&gt;自己写 ruby 其实也快两年了，做的测试开发，主要写一些脚本，写一些测试要用的 gem 包，轻量级工具等。&lt;/p&gt;

&lt;p&gt;因为知道 rails 属于 web 开发的范围，所以很早就把 web 相关的书看了一些，像 html，javascript，数据库之类的。最近看了 Michael Hartl 的 Tutorial，
跟着做了 blog，还在这个 blog 的基础上添加了转发，评论，点赞的功能。最后照着 passenger 和 capistrano 的 documentation 手动部署一遍，自动化部署一遍，目前勉强凑合能看。&lt;/p&gt;

&lt;p&gt;现在想知道目前离一年的经验还有多少差距，有没有接下来的一些学习路线推荐，新人求教。&lt;/p&gt;

&lt;p&gt;blog 的地址：&lt;a href="http://115.159.152.244:8000/" rel="nofollow" target="_blank"&gt;http://115.159.152.244:8000/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;github: &lt;a href="https://github.com/aoreki/blogapp" rel="nofollow" target="_blank"&gt;https://github.com/aoreki/blogapp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;目前还挺丑的，不要笑话。&lt;/p&gt;</description>
      <author>aoreki</author>
      <pubDate>Sun, 04 Jun 2017 18:52:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/33140</link>
      <guid>https://ruby-china.org/topics/33140</guid>
    </item>
    <item>
      <title>手机和谷歌浏览器提交表单显示 ActionController::InvalidAuthenticityToken</title>
      <description>&lt;p&gt;环境：&lt;/p&gt;

&lt;p&gt;1.ubuntu 上 rails server 开启服务，端口 3000&lt;/p&gt;

&lt;p&gt;2.nginx 监听 8000 端口，nginx 配置如下&lt;/p&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;&lt;span class="n"&gt;events&lt;/span&gt; {
    &lt;span class="n"&gt;worker_connections&lt;/span&gt;  &lt;span class="m"&gt;1024&lt;/span&gt;;
}
&lt;span class="n"&gt;http&lt;/span&gt; {
    &lt;span class="n"&gt;include&lt;/span&gt; /&lt;span class="n"&gt;etc&lt;/span&gt;/&lt;span class="n"&gt;nginx&lt;/span&gt;/&lt;span class="n"&gt;mime&lt;/span&gt;.&lt;span class="n"&gt;types&lt;/span&gt;;
    &lt;span class="n"&gt;default_type&lt;/span&gt; &lt;span class="n"&gt;application&lt;/span&gt;/&lt;span class="n"&gt;octet&lt;/span&gt;-&lt;span class="n"&gt;stream&lt;/span&gt;;
    &lt;span class="n"&gt;underscores_in_headers&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt;;
    &lt;span class="n"&gt;server&lt;/span&gt; {
         &lt;span class="n"&gt;listen&lt;/span&gt; &lt;span class="n"&gt;xx&lt;/span&gt;.&lt;span class="n"&gt;xx&lt;/span&gt;.&lt;span class="n"&gt;xx&lt;/span&gt;.&lt;span class="n"&gt;xx&lt;/span&gt;:&lt;span class="m"&gt;8000&lt;/span&gt;;
         &lt;span class="n"&gt;root&lt;/span&gt; /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;ubuntu&lt;/span&gt;/&lt;span class="n"&gt;blog&lt;/span&gt;/&lt;span class="n"&gt;public&lt;/span&gt;;
         &lt;span class="n"&gt;location&lt;/span&gt; / {
             &lt;span class="n"&gt;proxy_pass&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;://&lt;span class="n"&gt;xx&lt;/span&gt;.&lt;span class="n"&gt;xx&lt;/span&gt;.&lt;span class="n"&gt;xx&lt;/span&gt;.&lt;span class="n"&gt;xx&lt;/span&gt;:&lt;span class="m"&gt;3000&lt;/span&gt;/;
         }
         &lt;span class="n"&gt;location&lt;/span&gt; ~ \.(&lt;span class="n"&gt;css&lt;/span&gt;|&lt;span class="n"&gt;js&lt;/span&gt;|&lt;span class="n"&gt;jpg&lt;/span&gt;|&lt;span class="n"&gt;png&lt;/span&gt;|&lt;span class="n"&gt;gif&lt;/span&gt;) {
             &lt;span class="n"&gt;root&lt;/span&gt; /&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;ubuntu&lt;/span&gt;/&lt;span class="n"&gt;blog&lt;/span&gt;/&lt;span class="n"&gt;public&lt;/span&gt;;
         }
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现象：&lt;/p&gt;

&lt;p&gt;1.Microsoft Edge 和 Firefox 访问 xx.xx.xx.xx:8000 提交表单正常&lt;/p&gt;

&lt;p&gt;2.Microsoft Edge，Chrome，Firefox 访问 xx.xx.xx.xx:3000 提交表单正常&lt;/p&gt;

&lt;p&gt;3.Chrome 访问 xx.xx.xx.xx:8000 提交表单显示 ActionController::InvalidAuthenticityToken&lt;/p&gt;

&lt;p&gt;4.Chrome 版本 58.0.3029.110 (64-bit)&lt;/p&gt;

&lt;p&gt;5.报错信息 (太长了，截选)：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Processing by SessionsController#create as HTML
  Parameters: &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"utf8"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"✓"&lt;/span&gt;, &lt;span class="s2"&gt;"authenticity_token"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"UN2YDS8C5xIt7Wu2RDmOqC7fa5YgSeGOdNG/YTbZIXNH4MH7ZlFhsWmABC44uLO7YvN4cO72T8ecfu5U3v/i2Q=="&lt;/span&gt;, &lt;span class="s2"&gt;"session"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;{&lt;/span&gt;&lt;span class="s2"&gt;"email"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"test@test.com"&lt;/span&gt;, &lt;span class="s2"&gt;"password"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"[FILTERED]"&lt;/span&gt;, &lt;span class="s2"&gt;"remember_me"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"0"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;, &lt;span class="s2"&gt;"commit"&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"Log in"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
Can&lt;span class="s1"&gt;'t verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 1ms (ActiveRecord: 0.0ms)

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

actionpack (5.0.2) lib/action_controller/metal/request_forgery_protection.rb:195:in `handle_unverified_request'&lt;/span&gt;
actionpack &lt;span class="o"&gt;(&lt;/span&gt;5.0.2&lt;span class="o"&gt;)&lt;/span&gt; lib/action_controller/metal/request_forgery_protection.rb:223:in &lt;span class="sb"&gt;`&lt;/span&gt;handle_unverified_request&lt;span class="s1"&gt;'
actionpack (5.0.2) lib/action_controller/metal/request_forgery_protection.rb:218:in `verify_authenticity_token'&lt;/span&gt;
activesupport &lt;span class="o"&gt;(&lt;/span&gt;5.0.2&lt;span class="o"&gt;)&lt;/span&gt; lib/active_support/callbacks.rb:382:in &lt;span class="sb"&gt;`&lt;/span&gt;block &lt;span class="k"&gt;in &lt;/span&gt;make_lambda&lt;span class="s1"&gt;'
activesupport (5.0.2) lib/active_support/callbacks.rb:169:in `block (2 levels) in halting'&lt;/span&gt;
actionpack &lt;span class="o"&gt;(&lt;/span&gt;5.0.2&lt;span class="o"&gt;)&lt;/span&gt; lib/abstract_controller/callbacks.rb:12:in &lt;span class="sb"&gt;`&lt;/span&gt;block &lt;span class="o"&gt;(&lt;/span&gt;2 levels&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &amp;lt;module:Callbacks&amp;gt;&lt;span class="s1"&gt;'
activesupport (5.0.2) lib/active_support/callbacks.rb:170:in `block in halting'&lt;/span&gt;
activesupport &lt;span class="o"&gt;(&lt;/span&gt;5.0.2&lt;span class="o"&gt;)&lt;/span&gt; lib/active_support/callbacks.rb:454:in &lt;span class="sb"&gt;`&lt;/span&gt;block &lt;span class="k"&gt;in &lt;/span&gt;call&lt;span class="s1"&gt;'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问题：
这现象让人很疑惑，Rails App 应该没问题，nginx 感觉也没问题，只有 Chrome 的请求，经过 nginx，才会有问题，新人求教。&lt;/p&gt;</description>
      <author>aoreki</author>
      <pubDate>Sun, 21 May 2017 21:32:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/33030</link>
      <guid>https://ruby-china.org/topics/33030</guid>
    </item>
  </channel>
</rss>
