<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Canmel (Boat)</title>
    <link>https://ruby-china.org/Canmel</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>超链接添加 data-method 属性会造成两次提交</title>
      <description>&lt;p&gt;最近在开发过程中，使用 bootstrap 的 modal 去展示一个简单的数据，在 modal 的确定按钮，我改成了一个 button 样式的超链接，具体的 html 内容如下：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;a class="btn meedesidy_btn_confirm" data-dismiss="modal" id="back_btn" data-method="get" href="/cars/2/back"&amp;gt;提交&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是发现这样会提交两次，在删除 &lt;code&gt;data-method&lt;/code&gt;属性以后就能恢复正常&lt;/p&gt;

&lt;p&gt;请问这是为什么会提交两次呢，虽然超链接的默认请求方式是&lt;code&gt;get&lt;/code&gt;但是加上为什么就会提交两次呢？&lt;/p&gt;</description>
      <author>Canmel</author>
      <pubDate>Fri, 03 Mar 2017 11:16:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/32429</link>
      <guid>https://ruby-china.org/topics/32429</guid>
    </item>
    <item>
      <title>小白总结：在使用 Ruby 发现一些较为巧妙的写法</title>
      <description>&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user = User.new
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="设定默认值"&gt;设定默认值&lt;/h2&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user.name ||= '默认值'
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="防止空指针"&gt;防止空指针&lt;/h2&gt;
&lt;p&gt;| 使用&lt;code&gt;＆&lt;/code&gt;&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;area = Area.new
user.area = area
user.area&amp;amp;.area_name
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;| 使用&lt;code&gt;delegate&lt;/code&gt;&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;delegate :area_name, to: :area, allow_nil: true
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="目标：使用format格式化user.balance,但为０时，为０，而不格式化"&gt;目标：使用 format 格式化 user.balance，但为0时，为0，而不格式化&lt;/h2&gt;
&lt;p&gt;| user.balance = 23.027&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user.balance.to_i.zero? ? format(‘%.2f’, user.balance) # to_i 可以防止空指针
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="捕获异常"&gt;捕获异常&lt;/h2&gt;
&lt;p&gt;使用&lt;code&gt;rescue =&amp;gt; ex&lt;/code&gt; 代替&lt;code&gt;rescue StandardError =&amp;gt; ex&lt;/code&gt;
&lt;code&gt;rescue =&amp;gt; ex # 默认捕获StandardError，　推荐一般捕捉StandardError&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="if...else...end可以直接返回值"&gt;if...else...end 可以直接返回值&lt;/h2&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;test = ''
if user.balance.to_i.zero?
  test = 'if值'
else
  test = 'else值'
end　
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;  ||&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;test = if user.balance.to_i.zero?
             'if值'
          else
             'else值'
          end
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="事务"&gt;事务&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;ActiveRecord::Base.transaction do&lt;/code&gt; =&amp;gt; &lt;code&gt;transaction do&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="数组处理"&gt;数组处理&lt;/h2&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user1 = User.new
user2 = User.new
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;| 目标：获取用户 user 的 id 数组
我之前的写法是这样的&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user_id_array = []
[user1, user2].each do |user|
   user_id_array &amp;lt;&amp;lt; user1.id
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;||&lt;/p&gt;

&lt;p&gt;&lt;code&gt;user_id_array = [user1, user2].map(&amp;amp;:id) 　　# map() 提取数组某元素，组合成新的数组&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="字符串处理"&gt;字符串处理&lt;/h2&gt;
&lt;p&gt;| 变量和字符串的拼接
| user.name = '中国'&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; ’我爱你‘ + user.name
&amp;gt; “我爱你中国”
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;||&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; "我爱你#{user.name}"
&amp;gt; “我爱你中国”
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="有什么错误的还请各位前辈指出，有更为精美的代码还希望能给出一点，３ｑ"&gt;有什么错误的还请各位前辈指出，有更为精美的代码还希望能给出一点，3q&lt;/h2&gt;</description>
      <author>Canmel</author>
      <pubDate>Tue, 27 Dec 2016 10:43:04 +0800</pubDate>
      <link>https://ruby-china.org/topics/32011</link>
      <guid>https://ruby-china.org/topics/32011</guid>
    </item>
  </channel>
</rss>
