コントローラのグループ化について

29 views
Skip to first unread message

kiyo

unread,
Sep 15, 2009, 9:15:02 PM9/15/09
to rbc-incubator
Kiyoです。

Rails2.2.2で、コントローラを機能別にグループ化したのですが、
「uninitialized constant Tokyugen::JinjisController」のエラーが発生しました。

フォルダは、app、helpers、models、viewsの下に作成しました。

jinjis_controller.rbと、application.rbは以下のように修正しております。

【jinjis_controller.rb】
class Tokyugen::JinjisController < Tokyugen::ApplicationController

【application.rb】
class Tokyugen::ApplicationController < ActionController::Base

この対応では、まずいのでしょうか?

片山嘉國

unread,
Sep 15, 2009, 9:43:14 PM9/15/09
to rbc-in...@googlegroups.com
片山よしくにと申します。

ご質問の件ですが、コントローラを機能別に分けたいときは私は以下のように
しています。

ruby script/generate controller group/test

このようにすると、

create app/controllers/group
create app/helpers/group
create app/views/group/test
create test/functional/group
create test/unit/helpers/group
create app/controllers/group/test_controller.rb
create test/functional/group/test_controller_test.rb
create app/helpers/group/test_helper.rb
create test/unit/helpers/group/test_helper_test.rb

こんな感じで、「group」というフォルダの下に該当のコントローラやビュー
などが作成されます。

アクセスするためのURLは

http://xxx.xxx.xx/group/test

のようなURLになります。

もしかすると、railsのソースツリーを

app/group/controllers/test.rb
app/group/views/test.htnl.erb

のような形にしたいのかもしれませんが、上記のようにする場合の方法は
私は存じません。

ご参考になればと思います。
よろしくお願いします。


2009年9月16日10:15 kiyo <kiyo...@f4.dion.ne.jp>:
--
==♪==♯==♪==♯==♪==♯==♪==♯==♪==♯==♪==
片山 嘉國 (Yoshikuni Katayama)
有限会社ライトハウス
URL: http://www.l-house.net/
E-Mail:kata...@l-house.net
eNote-無料で使える日報管理&グループウェア
まずは覗いてみて → http://www.enote.jp/
==♭==♪==♭==♪==♭==♪==♭==♪==♭==♪==♭==

kiyo

unread,
Sep 15, 2009, 11:00:07 PM9/15/09
to rbc-incubator
片山さん。

ご回答ありがとうございました。

まさに、やりたいのは「app/controllers/group」です。

ruby script/generate controller group/test を実行すると、
test_controller.rbがapp/controllers/group配下に作成されて、
application.rbはapp/controllersの配下のようですので、
application.rbに記述した
「class Tokyugen::ApplicationController < ActionController::Base」を
「class ApplicationController < ActionController::Base」に戻して、
配置先をapp/controllersにしました。

そんの結果、「No action responded to tokyuGen. Actions index」となりました。
原因が良くわかりません。
ご教示頂けませんでしょうか。

【フォルダ構成】
/Jinji/app/controllers/tokyugen

【Controllerのコーディング】
class Tokyugen::JinjisController < ApplicationController
# GET /jinjis
# GET /jinjis.xml
def index
@jinjis = Jinji.find(:all)

respond_to do |format|
format.html { render :action => tokyugen }# tokyugen.html.erb
format.xml { render :xml => @jinjis }
end
end




片山嘉國

unread,
Sep 15, 2009, 11:42:06 PM9/15/09
to rbc-in...@googlegroups.com
片山よしくにです。

application.rbの記述は、最初にrailsのプロジェクトを作成したときに出来ている
記述に戻してもらえれば問題ないと思います。

> そんの結果、「No action responded to tokyuGen. Actions index」となりました。
> 原因が良くわかりません。

> 【フォルダ構成】
> /Jinji/app/controllers/tokyugen
>
> 【Controllerのコーディング】
> class Tokyugen::JinjisController < ApplicationController
> # GET /jinjis
> # GET /jinjis.xml
> def index
> @jinjis = Jinji.find(:all)
>
> respond_to do |format|
> format.html { render :action => tokyugen }# tokyugen.html.erb
> format.xml { render :xml => @jinjis }
> end
> end

ということですが、以下を確認していただけますか?

1.「No action responded to tokyuGen. Actions index」とありますが、
 tokyuGenではなくてtokyugenですよね?(ただのミスタイプ?)
 もし、このままのエラーメッセージが出たとしたら、ブラウザに入力した
 URLが間違えたのかも・・・?

2.viewのファイルを確認してください。
 app/views/tokyugen/jinjis/tokyugen.html.erb
 というファイルがindex.html.erbの代わりに表示されるはずなのですが・・。

頂いたメールの情報から察すると、この辺りが怪しいのではないかと思う
のですが、如何でしょうか?

それではよろしくお願いします。



2009年9月16日12:00 kiyo <kiyo...@f4.dion.ne.jp>:

kiyo

unread,
Sep 16, 2009, 12:08:38 AM9/16/09
to rbc-incubator
Kiyoです。

>
> 1.「No action responded to tokyuGen. Actions index」とありますが、
>  tokyuGenではなくてtokyugenですよね?(ただのミスタイプ?)
>  もし、このままのエラーメッセージが出たとしたら、ブラウザに入力した
>  URLが間違えたのかも・・・?

eclipseで確認しているのですが、
Urlは小文字で入力しているのですが、
エラーメッセージは大文字で表示されています。

Grepしてみたのですが、logにしかtokyuGenの文字列は存在しませんでした。
一度、tokyuGenでフォルダー等を作成していたので、tokyugenに変更しました。

>
> 2.viewのファイルを確認してください。
>  app/views/tokyugen/jinjis/tokyugen.html.erb
>  というファイルがindex.html.erbの代わりに表示されるはずなのですが・・。

app/views/tokyugen/jinjis/の配下に、tokyugen.html.erbは存在しております。
このViewを表示して欲しいのですが・・・・

それと、
「Rendering C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/
action_controller/templates/rescues/layout.erb (not_found)」の
メッセージも出力されていたのが、ちょっと気になります。


kiyo

unread,
Sep 16, 2009, 2:10:01 AM9/16/09
to rbc-incubator
Kiyoです。
どうも不思議なのですが、
マシンの再起動を行なったらOKでした。

環境設定がまずいのかな・・・・

片山嘉國

unread,
Sep 16, 2009, 6:57:30 AM9/16/09
to rbc-in...@googlegroups.com
片山よしくにです。

問題が解決されたようで、何よりです。

自分も細かい条件は把握していないのですが、development環境で開発していても、
railsを動かしているサーバー(Webrickやmongrelなど)を再起動しないと反映しない
ケースがあります。

コントローラやモデルを追加した場合や、config配下のファイルを変更した場合、
プラグインなどを追加した場合などはサーバーを再起動しないと反映されません。

それとも、動かしているマシン(PC?)自体を再起動したらOKだったということ
ですか?もしそうだったなら不思議ですね・・・。



2009年9月16日15:10 kiyo <kiyo...@f4.dion.ne.jp>:
>
> Kiyoです。
> どうも不思議なのですが、
> マシンの再起動を行なったらOKでした。
>
> 環境設定がまずいのかな・・・・

Yozo SATO

unread,
Sep 18, 2009, 1:02:33 AM9/18/09
to rbc-in...@googlegroups.com
さとうようぞう といいます。こんにちは。
まさかそんなことはあるまい、とは思いますが、可能性がゼロではないので一応・・・

「エディットしたファイルを保存してなかった」とか。

サーバーを再起動するときは、保存されていないファイルがあります、とかの
ダイアログが出ないと思いますが、OSそのものを落とす時にはエディタが終了時に
保存されていないファイルがあります、と警告を出してくれるはずなので。。。


2009年9月16日19:57 片山嘉國 <kata...@l-house.net>:
--
yoozo...@gmail.com

kiyo

unread,
Sep 19, 2009, 5:01:22 PM9/19/09
to rbc-in...@googlegroups.com
Kiyoです。

さとうようぞう さん、返信有難うございました。

さすがに、それはないです。 (笑)

なんとか、初期画面表示までできました。

ご回答くださった皆さん、有難うございます。

# 次は、画面への入力チェック、DBアクセス、次画面遷移の実装。また一波乱ありそう・・・・
--------------------------------------------------------------------------------



No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.5.409 / Virus Database: 270.13.104/2379 - Release Date: 09/17/09
15:55:00
Reply all
Reply to author
Forward
0 new messages