<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>powermedia (dly)</title>
    <link>https://ruby-china.org/powermedia</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>开发环境和生产环境的 Cancancan 权限竟然不一样,求解</title>
      <description>&lt;h3 id="问题描述"&gt;问题描述&lt;/h3&gt;
&lt;p&gt;自己的一个 Rails 项目，权限控制使用 cancancan 2.0&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;在开发环境下非管理员用户创建数据时正常&lt;/li&gt;
&lt;li&gt;在生产环境下非管理员用户创建数据时权限失败。&lt;/li&gt;
&lt;li&gt;但并不是所有的创建权限有问题，就是某一个表权限出现这种情况&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;代码如下&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Ability&lt;/span&gt;
    &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;CanCan&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Ability&lt;/span&gt;

    &lt;span class="nb"&gt;attr_reader&lt;/span&gt; &lt;span class="ss"&gt;:user&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="vi"&gt;@user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@user.blank&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;
        &lt;span class="n"&gt;roles_for_anonymous&lt;/span&gt;
      &lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="vi"&gt;@user.roles&lt;/span&gt;&lt;span class="p"&gt;?(:&lt;/span&gt;&lt;span class="n"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="ss"&gt;:manage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;
      &lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="vi"&gt;@user.roles&lt;/span&gt;&lt;span class="p"&gt;?(:&lt;/span&gt;&lt;span class="n"&gt;member&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;roles_for_member&lt;/span&gt;
      &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="n"&gt;roles_for_anonymous&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="kp"&gt;protected&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;roles_for_member&lt;/span&gt;
      &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="ss"&gt;:create&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;Project&lt;/span&gt;
      &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:update&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;:destroy&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="no"&gt;Project&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;user_id: &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;id&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="c1"&gt;## ...&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>powermedia</author>
      <pubDate>Thu, 16 Nov 2017 16:16:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/34581</link>
      <guid>https://ruby-china.org/topics/34581</guid>
    </item>
    <item>
      <title>关于 ruby.taobao.org 的设置问题</title>
      <description>&lt;p&gt;今天测试部署 Rails 项目，Gemfile 里设置为淘宝的源如下&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="s1"&gt;'https://ruby.taobao.org'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在阿里云里部署时 bundle install 时直接被 Killed
然后换成默认的：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rubygems&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;org&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;换成默认之后是可以 bundle install 了，但是还是有的 gem 无法安装，提示：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Gem&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;RemoteFetcher&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;FetchError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;Errno&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;ECONNRESET&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;Connection&lt;/span&gt; &lt;span class="n"&gt;reset&lt;/span&gt; &lt;span class="n"&gt;by&lt;/span&gt; &lt;span class="n"&gt;peer&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="no"&gt;SSL_connect&lt;/span&gt;&lt;span class="o"&gt;.....&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后把源由 https 改为了 http，一切 ok!&lt;/p&gt;</description>
      <author>powermedia</author>
      <pubDate>Mon, 04 May 2015 21:58:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/25424</link>
      <guid>https://ruby-china.org/topics/25424</guid>
    </item>
  </channel>
</rss>
