<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>cloude9101 (cloudy9101)</title>
    <link>https://ruby-china.org/cloude9101</link>
    <description>有情皆孽，无情太苦</description>
    <language>en-us</language>
    <item>
      <title>半路出家的 Rails 新手求职同时求指导</title>
      <description>&lt;h3 id="半路出家"&gt;半路出家&lt;/h3&gt;
&lt;hr&gt;

&lt;p&gt;本人本科毕业 2 年，非计算机相关专业，之前在一家国企从事机械设计方面的工作，一直对计算机和互联网兴趣极大，工作的这段时间发现，与稳定的工作相比，自己喜爱的工作似乎更能提供前进的动力，在工作之余开始断断续续的学习 Ruby on Rails，但是始终进展不大。2014 年 9 月，终于下定决心，辞职了，全心投入学习 Rails。到目前感觉掌握了一些基本的技能。&lt;/p&gt;
&lt;h3 id="掌握的技能"&gt;掌握的技能&lt;/h3&gt;
&lt;hr&gt;

&lt;p&gt;熟悉 Ruby on Rails
熟悉 HTML 和 CSS
了解 JavaScript 和 jQuery
基本的数据库操作
Ubuntu/MAC 平台 SublimeText
熟悉 Github  能用 Heroku&lt;/p&gt;
&lt;h3 id="练习小项目"&gt;练习小项目&lt;/h3&gt;
&lt;hr&gt;

&lt;p&gt;这两个小项目是从 10 月开始，边学习边做的，都是独立完成，参考了   Ruby on Rails Tutorial 和 Ruby China 等，借助了一些优秀的 Gem。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;捕梦网---建立目标，打卡，轻微社交&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/cloudy9101/dreamweaver" rel="nofollow" target="_blank"&gt;https://github.com/cloudy9101/dreamweaver&lt;/a&gt;
Heroku: &lt;a href="https://dreamweaver.herokuapp.com/" rel="nofollow" target="_blank"&gt;https://dreamweaver.herokuapp.com/&lt;/a&gt;
示例账号：ex1@am.ple
密码：111111&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;dodotv---想撸个山寨 B 站出来的，未成功（差太远了...）&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/cloudy9101/dodotv" rel="nofollow" target="_blank"&gt;https://github.com/cloudy9101/dodotv&lt;/a&gt; 
Heroku: &lt;a href="https://dodotv.herokuapp.com" rel="nofollow" target="_blank"&gt;https://dodotv.herokuapp.com&lt;/a&gt;
示例账号：ex@am.ple
密码：11111111&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="先求指导"&gt;先求指导&lt;/h3&gt;
&lt;hr&gt;

&lt;p&gt;问题 1：我现在这个水平可以开始求职了吗？因为是转行来的，不了解实际开发需要达到怎样的程度。&lt;/p&gt;

&lt;p&gt;问题 2：现在的我，感觉学了些东西，但越发感觉有更多地东西要学，如 Ruby 和 Rails 需要更深入地研究，JavaScript 需要掌握，数据库需要掌握等等，那我现在应该优先学习哪些？&lt;/p&gt;
&lt;h3 id="如果可以再求职"&gt;如果可以再求职&lt;/h3&gt;
&lt;hr&gt;

&lt;p&gt;首先希望工作能够支持持续的学习，有大神指点就最好了。
其次我是河北人，希望地点最好在北京，便于探亲，其它地点也可考虑。&lt;/p&gt;
&lt;h3 id="联系我"&gt;联系我&lt;/h3&gt;
&lt;hr&gt;

&lt;p&gt;Email: cloudy9101@126.com
Github: &lt;a href="https://github.com/cloudy9101" rel="nofollow" target="_blank"&gt;https://github.com/cloudy9101&lt;/a&gt;&lt;/p&gt;</description>
      <author>cloude9101</author>
      <pubDate>Fri, 23 Jan 2015 15:52:04 +0800</pubDate>
      <link>https://ruby-china.org/topics/23905</link>
      <guid>https://ruby-china.org/topics/23905</guid>
    </item>
    <item>
      <title>RubyOnRailsTutorial 中，signout 和 current_user 的问题。</title>
      <description>&lt;p&gt;今天在做 Ruby on Rails Tutorial 时，遇到一个问题，请教一下，我是新手，还请大神们帮帮忙。谢谢。
在这本书的 Sample_App 中，app/helpers/sessions_helper.rb 该文件定义了登入登出以及 cookies 相关的方法。
我是按照书里一步步来的，现在情况是在 sign out 时会出错，提示 current_user 为 nil，没有 update_attribute 方法。&lt;br&gt;
但是我试了如果把 cookies.delete 这个方法放到 current_user.update_attribute 后面，就没有问题。 
请问这是怎么回事呢？希望同时说明一下这其中的 self 是代表 SessionsController 的实例吗？为什么在 sign_out 方法里 update_attribute 时不用 self 呢？&lt;/p&gt;

&lt;p&gt;该文件的完整代码如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;SessionsHelper&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;sign_in&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;remember_token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new_remember_token&lt;/span&gt;
        &lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;permanent&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:remember_token&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;remember_token&lt;/span&gt;
        &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update_attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:remember_token&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;remember_token&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;current_user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;current_user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="vi"&gt;@current_user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;current_user&lt;/span&gt;
        &lt;span class="n"&gt;remember_token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:remember_token&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="vi"&gt;@current_user&lt;/span&gt; &lt;span class="o"&gt;||=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;remember_token: &lt;/span&gt;&lt;span class="n"&gt;remember_token&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;signed_in?&lt;/span&gt;
        &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;current_user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;nil?&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;sign_out&lt;/span&gt;
        &lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:remember_token&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;current_user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update_attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:remember_token&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new_remember_token&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;current_user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;</description>
      <author>cloude9101</author>
      <pubDate>Sun, 22 Dec 2013 17:02:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/16368</link>
      <guid>https://ruby-china.org/topics/16368</guid>
    </item>
  </channel>
</rss>
