[前][次][番号順一覧][スレッド一覧]

rails:535

From: Kazuhiko <kazuhiko@f...>
Date: Tue, 01 Nov 2005 07:01:45 +0900
Subject: [rails:535] Re: generate scaffold ができません

かずひこです。

At Mon, 31 Oct 2005 11:12:10 +0900,
drawnboy wrote:

> これは rails 0.14.2 (0.14.0〜かも) のバグとなります。

0.14.1 で、私のパッチがエンバグしていて、その修正だったはずの 0.14.2 でも
バグになっていた、という経緯です。ごめんなさい。m(_ _)m

http://dev.rubyonrails.org/ticket/2213
http://dev.rubyonrails.org/ticket/2562
http://dev.rubyonrails.org/ticket/2609

> 対処としては、これも岩月さんが指摘されておりますが、
> 
> .../components/scaffold/scaffold_generator.rb
> line 50 (as of rails 0.14.2) is
> 
> @controller_name = args.shift or
> (ActiveRecord::Base.pluralize_table_names ? @name.pluralize : @name)
> 
> if you change it to:
> @controller_name = (ActiveRecord::Base.pluralize_table_names ?
> @name.pluralize : @name)
> 
> 上記の変更するか、Zhekov さんの言われているように controller の名前を指
> 定する事で対処可能です。

このファイルに関する 0.14.2 と今の svn trunk の差分は以下の通りです。

--- rails-0.14.2/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb   2005-10-27 09:51:29.000000000 +0900
+++ rails-0.14.2/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb  2005-11-01 05:57:15.000000000 +0900
@@ -46,9 +46,14 @@
   
   def initialize(runtime_args, runtime_options = {})
     super
-    @controller_name = args.shift or (ActiveRecord::Base.pluralize_table_names ? @name.pluralize : @name)
+
+    # Take controller name from the next argument.  Default to the pluralized model name.
+    @controller_name = args.shift
+    @controller_name ||= ActiveRecord::Base.pluralize_table_names ? @name.pluralize : @name
+    
     base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(@controller_name)
     @controller_class_name_without_nesting, @controller_singular_name, @controller_plural_name = inflect_names(base_name)
+    
     if @controller_class_nesting.empty?
       @controller_class_name = @controller_class_name_without_nesting
     else

つまりこんな感じです。

# 0.13.2
a = 1 || 3 # a = 1 になる
a = nil || 3 # a = 3 になる

# 0.14.1
a = nil || 2 ? 3 : 4 # a = 3 になる
a = 1 || 2 ? 3 : 4 # a = 1 になってほしいけど || が強いから 3 になる

# 0.14.2
a = 1 or (2 ? 3 : 4) # a = 1 になる
a = nil or (2 ? 3 : 4) # a = 3 になってほしいけど nil になる

# svn trunk
a = nil ; a ||= 2 ? 3 : 4 # a = 3 になる

# 一番短く書くと 'a = 1 || (2 ? 3 : 4)' になるかな。
-- 
かずひこ <http://wiki.fdiary.net/kazuhiko/>
  「恋とハックはアジャイルが命!」

--
ML: rails@r...
使い方: http://QuickML.com/
Web Site: http://wiki.fdiary.net/rails/
ML Archives: http://www.fdiary.net/ml/rails/

[前][次][番号順一覧][スレッド一覧]

       492 2005-10-31 01:33 [adachi@t...         ] generate scaffold ができません          
       493 2005-10-31 02:05 ┣[don@n...            ]                                       
       499 2005-10-31 03:02 ┃┗[adachi@t...         ]                                     
       502 2005-10-31 03:19 ┃ ┗[don@n...            ]                                   
       503 2005-10-31 03:19 ┃  ┗[don@n...            ]                                 
       495 2005-10-31 02:42 ┗[stoyan@g...         ]                                       
       497 2005-10-31 02:49  ┗[adachi@t...         ]                                     
       500 2005-10-31 03:05   ┗[stoyan@g...         ]                                   
       501 2005-10-31 03:12    ┗[drawn.boy@g...      ]                                 
       504 2005-10-31 03:23     ┣[adachi@t...         ]                               
->     535 2005-10-31 23:01     ┗[kazuhiko@f...       ]