<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>spiderxu (徐逗逗)</title>
    <link>https://ruby-china.org/spiderxu</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>rails FasterCsv 文件导入问题</title>
      <description>&lt;p&gt;今天做 csv 导入的时候遇到一个问题，哪位大神帮忙看下
以前 ruby 1.9 版本以下的时候我导入CSV文件都是这样写的&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'csv'&lt;/span&gt;

&lt;span class="no"&gt;FasterCSV&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;foreach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file_path&lt;/span&gt;&lt;span class="p"&gt;)&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;row&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
   &lt;span class="n"&gt;block&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样轻轻松松就导进来了，但是现在2.0 版本的时候，再用这种方法导入的时候就悲剧了
出现下面问题&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;please&lt;/span&gt; &lt;span class="n"&gt;switch&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="no"&gt;Ruby&lt;/span&gt; &lt;span class="mf"&gt;1.9&lt;/span&gt;&lt;span class="s1"&gt;'s standard
CSV library.  It'&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="no"&gt;FasterCSV&lt;/span&gt; &lt;span class="n"&gt;plus&lt;/span&gt;
&lt;span class="n"&gt;support&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="no"&gt;Ruby&lt;/span&gt; &lt;span class="mf"&gt;1.9&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="n"&gt;m17n&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;
&lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在网上搜了一下原因，发现有大神回答了这个问题
&lt;a href="http://stackoverflow.com/questions/5011395/what-is-ruby-1-9-standard-csv-library" rel="nofollow" target="_blank"&gt;http://stackoverflow.com/questions/5011395/what-is-ruby-1-9-standard-csv-library&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;查了一下文档，CSV parse 的用法有一段文字
&lt;a href="http://www.ruby-doc.org/stdlib-2.1.2/libdoc/csv/rdoc/CSV.html#method-c-parse" rel="nofollow" target="_blank"&gt;http://www.ruby-doc.org/stdlib-2.1.2/libdoc/csv/rdoc/CSV.html#method-c-parse&lt;/a&gt;
This method can be used to easily parse CSV out of a String. You may either provide a block which will be called with each row of the String in turn
大概意思是 parse 方法只接收一个字符串，我要写一个 block 将数据转化成字符串，不知道有没有理解错，或者大家有没有更好的办法
求大神指教。&lt;/p&gt;</description>
      <author>spiderxu</author>
      <pubDate>Thu, 05 Jun 2014 15:59:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/19762</link>
      <guid>https://ruby-china.org/topics/19762</guid>
    </item>
    <item>
      <title>rails savon 请求的问题</title>
      <description>&lt;p&gt;我现在要调用对方一个 web service 的接口，对方是 java 的代码，我用的是 savon 插件，
调用的代码很简单，如下&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;initialize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="vi"&gt;@client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Savon&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;wsdl: &lt;/span&gt;&lt;span class="n"&gt;api_url&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;app_request&lt;/span&gt;
    &lt;span class="n"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"string"&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@client.call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:app_request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="ss"&gt;parameters: &lt;/span&gt;&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;body&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/2014/f20bb87a75a65de7a288f4a54a157ddc.jpg" title="" alt=""&gt;
请求的结果是这样的，感觉好像发起了两个请求，一个是 get，一个是 post，get 的时候把数据都传过去了，但是 post 的时候好像什么没传，对方的日志显示，他们确定没收任何传过来的参数。
求哪位高手帮忙看下，为什么参数没有传过去，对方的 api 地址
&lt;a href="http://1.85.2.254/yaicservice/api/appservice?wsdl" rel="nofollow" target="_blank"&gt;http://1.85.2.254/yaicservice/api/appservice?wsdl&lt;/a&gt;&lt;/p&gt;</description>
      <author>spiderxu</author>
      <pubDate>Fri, 21 Mar 2014 14:04:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/18065</link>
      <guid>https://ruby-china.org/topics/18065</guid>
    </item>
    <item>
      <title>微信第三方开发带参数的二维码的问题</title>
      <description>&lt;p&gt;做微信接口开发时，遇到一个问题，微信有一个叫推广支持的接口，支持带参数的二维码，就是用户扫一下二维码后，微信会推送一条消息给用户，现在的问题是，如果是安桌手机，摄像头对准二维码不动，微信会重复扫描两次（正常情况下是一次），不知道哪位大神有遇到过这种情况不，求指教。&lt;/p&gt;</description>
      <author>spiderxu</author>
      <pubDate>Sun, 26 Jan 2014 16:34:22 +0800</pubDate>
      <link>https://ruby-china.org/topics/17006</link>
      <guid>https://ruby-china.org/topics/17006</guid>
    </item>
    <item>
      <title>Ruby AES 128 cbc 的问题</title>
      <description>&lt;p&gt;我用 java aes 加密出来的密文和 ruby 的不一样，求大神指教
java 代码&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/** 
  * 加密 
  *  
  * @param content 需要加密的内容 
  * @param password  加密密码 
  * @return 
  */  
 public static byte[] encrypt(String content, String password) {  
         try {             
                 KeyGenerator kgen = KeyGenerator.getInstance("AES");  
                 kgen.init(128, new SecureRandom(password.getBytes()));  
                 SecretKey secretKey = kgen.generateKey();  
                 byte[] enCodeFormat = secretKey.getEncoded();  
                 SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");  
                 Cipher cipher = Cipher.getInstance("AES");// 创建密码器  
                 byte[] byteContent = content.getBytes("utf-8");  
                 cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化  
                 byte[] result = cipher.doFinal(byteContent);  
                 return result; // 加密  
         } catch (NoSuchAlgorithmException e) {  
                 e.printStackTrace();  
         } catch (NoSuchPaddingException e) {  
                 e.printStackTrace();  
         } catch (InvalidKeyException e) {  
                 e.printStackTrace();  
         } catch (UnsupportedEncodingException e) {  
                 e.printStackTrace();  
         } catch (IllegalBlockSizeException e) {  
                 e.printStackTrace();  
         } catch (BadPaddingException e) {  
                 e.printStackTrace();  
         }  
         return null;  
 }  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ruby 代码&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def self.aes128_encrypt(password,content)
  aes = OpenSSL::Cipher.new('AES-128-CBC')
  aes.encrypt
  aes.key = password
  (aes.update(content) + aes.final).unpack('H*').join
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;两个加密出来的数据不一样，求指教&lt;/p&gt;</description>
      <author>spiderxu</author>
      <pubDate>Tue, 14 Jan 2014 15:34:30 +0800</pubDate>
      <link>https://ruby-china.org/topics/16791</link>
      <guid>https://ruby-china.org/topics/16791</guid>
    </item>
  </channel>
</rss>
