From ee738f960439e511285bc53b7207cebacda8db36 Mon Sep 17 00:00:00 2001
From: rono23 <rono23@gmail.com>
Date: Thu, 19 Dec 2013 01:35:30 +0900
Subject: Fix to_param when attribute has multibyte character

---
 activerecord/lib/active_record/integration.rb | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

(limited to 'activerecord/lib')

diff --git a/activerecord/lib/active_record/integration.rb b/activerecord/lib/active_record/integration.rb
index 27576b1e61..31e2518540 100644
--- a/activerecord/lib/active_record/integration.rb
+++ b/activerecord/lib/active_record/integration.rb
@@ -98,8 +98,10 @@ module ActiveRecord
           super()
         else
           define_method :to_param do
-            if (default = super()) && (result = send(method_name).to_s).present?
-              "#{default}-#{result.squish.truncate(20, separator: /\s/, omission: nil).parameterize}"
+            if (default = super()) &&
+                 (result = send(method_name).to_s).present? &&
+                   (param = result.squish.truncate(20, separator: /\s/, omission: nil).parameterize).present?
+              "#{default}-#{param}"
             else
               default
             end
-- 
cgit v1.2.3