<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>knh190 (knh190)</title>
    <link>https://ruby-china.org/knh190</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>又拍云 https 证书无效，社区静态资源无法访问？</title>
      <description>&lt;p&gt;Ruby-China 的静态资源在 Chromium 下因为证书无效无法访问，但是 Ruby-China 自己的 https 是有效的。&lt;/p&gt;

&lt;p&gt;其他不能访问的有：v2ex，知乎 (不是私密连接，静态资源无法加载)，aws Amazon，mail.live.com（因为不能建立 https，压根打不开）；但在 Firefox 中都能正常访问。&lt;/p&gt;

&lt;p&gt;谷歌和 Youtube 之类又是正常的。不管是翻墙还是直连，情况都一样。搜了半天，没找到类似的问题，总不可能中间人攻击就针对我一个吧？&lt;/p&gt;</description>
      <author>knh190</author>
      <pubDate>Wed, 16 Nov 2016 13:48:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/31611</link>
      <guid>https://ruby-china.org/topics/31611</guid>
    </item>
    <item>
      <title>Rspec 为不同的控制器写登录 Helper</title>
      <description>&lt;p&gt;我在控制器下面需要登录才能操作一些东西，写了个 Helper 如下：&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;TestHelpers&lt;/span&gt;
    &lt;span class="c1"&gt;# helper for controller&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;login_admin&lt;/span&gt;
        &lt;span class="ss"&gt;:available&lt;/span&gt;

        &lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="n"&gt;post&lt;/span&gt; &lt;span class="n"&gt;user_session_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="c1"&gt;# bug&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;
&lt;p&gt;然而在 include 以后控制器测试中，却自动调用当前测试的控制器，不是使用路由中为 &lt;code&gt;user_session_path&lt;/code&gt; 定义的控制器，登录失败：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;RSpec&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;describe&lt;/span&gt; &lt;span class="no"&gt;Admin&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SomethingController&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:type&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:controller&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="s1"&gt;'should login as admin'&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
        &lt;span class="n"&gt;login_admin&lt;/span&gt; &lt;span class="c1"&gt;# fail&lt;/span&gt;
        &lt;span class="n"&gt;expect&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;to_not&lt;/span&gt; &lt;span class="n"&gt;eq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kp"&gt;nil&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;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;错误如下：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ActionController::RoutingError:
       No route matches &lt;span class="o"&gt;{&lt;/span&gt;..., :controller&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"admin/something"&lt;/span&gt;, :action&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;"/users/sign_in"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;怎么向特定控制器发送请求呢？谷歌的结果是不能这么干？&lt;/p&gt;</description>
      <author>knh190</author>
      <pubDate>Sat, 04 Jun 2016 13:59:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/30211</link>
      <guid>https://ruby-china.org/topics/30211</guid>
    </item>
  </channel>
</rss>
