Railsでコントローラーをつかわずにtest_controler.rbとindex.rhtmlを作成して各ディレクトリに置きました。コントローラーはdef index endだけのシンプルなものです。インデックスは空ページです。これでアクセスしたところ500エラーになりました。ジェネレータから作成しなければいけないのでしょうか

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

scaffoldを使って生成したアプリを実行したとき、



Status: 500 Internal Server Error

というエラーがlogディレクトリのファイルに書かれていたことがあります。
このときは、このメッセージに続いて

Access denied for user 'XXXXXX'@'%' to database 'YYYYYY'

というメッセージが書かれていました。
データベースMySQLを使用していて、作成したSchemaに対して、ログインユーザにアクセス権限を与えていないのが原因でした。

エラーメッセージを見直せば、エラーの原因がわかると思いますよ。


>>ジェネレータから作成しなければいけないのでしょうか

一時は、ジェネレータのscaffoldが配布ファイルからはずされたこともあったようです。別に絶対にジェネレータから作らなくてはいけないってことはないですよ。
    • good
    • 0
この回答へのお礼

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

調べたところ、ただたんにアクセス権限がroot:rootになっていて、webサーバーを起動していたユーザーでアクセスできないためでした。

ご迷惑をおかけしました。

お礼日時:2009/05/24 15:13

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QMacターミナルで実行中のプログラムを中止するには?

Macのターミナルでプログラムを走らせているとき、
実行中のプログラムを一時停止したり中断・終了させるには
どうしたらいいでしょう?

Unixだと、Control+s とか Control +c とかでできますよね。
Macだと、それではできないみたいなんです。

基本的な質問ですみませんが、どなたか教えていただけないでしょうか。

Aベストアンサー

ごく普通にControl + Cで中断できますよ。

もしかしてControlキーをcommandやcapslockと押し間違えているとかいうことはありませんか?

QRuby 改行文字の挿入

こんにちは。
Rubyの質問です。
htmlの文章にrubyで改行文字を挿入してそれを認識させたいのですが、
htmlの文章内に¥nを挿入しても読み込んだ際にうまく認識してくれませんでした。

何か他に方法があるのでしょうか。
ご教授の程よろしくお願い致します。

Aベストアンサー

どのようにして\nを挿入したのか、不明ですが、エディタを使用して行った前提で回答です。
改行コードを埋め込む場合は、\nを挿入したい位置で、Enterキーを押下してください。
それで、見かけ上、2行になれば、そこに改行コードが埋めこまれたことになります。

尚、通常は\nの文字そのものは、\とnの2文字にすぎません。
ruby のスクリプトでそれを"\n"のようにダブルクオートでくくった場合、それをrubyが改行コードとして扱う
という特別の約束があります。

ですので、エディタで行なう場合は、実際の改行コードを埋め込まないといけません。

Qcount関数の値をwhere句で使用する方法について

宜しくお願い致します。
例えば、下記の様にデータを検索します。

select column1,count(column2) as column2_num
from hoge_table
group by column2_num

すると、検索結果にはcolumn1のそのままの値と、column2の合計数が表示されると思います。
このcolumn2の合計数に対してwhere句で絞込みを行う方法はありませんか?
asで定義した値をそのままwhere句で使用できないとの事なので、

select column1,count(column2) as column2_num
from hoge_table
where count(column2) = '1'
group by column2_num

とやってみたんですが、検索出来ませんでした。
ご存知の方、ご教授の程、宜しくお願いいたします。

Aベストアンサー

グルーピングした値を条件にするにはwhereではなくhavingを使います。以下のようにしてみてください。

select column1,count(column2) as column2_num
from hoge_table
group by column2_num
having count(column2) = 1

QWe're sorry, but something went wrong

初めまして。
Ruby on railsについて質問させていただきます。

http://localhost:3000/membersにアクセスすると「We're sorry, but something went wrong.」と表示されてしまいます。
logファイルでは、
「Status: 500 Internal Server Error
could not open database: unable to open database file
 C:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/errors.rb:62:in `check'
 … 」と出ており、dbファイルがopenできない状況にあります。
どのようにしたらこれを解決することができるでしょうか?

以下は手順と情報です。

『手順』
1.[rails groupware2]にてRailsアプリケーションを作成
2.SQLite3にてテーブル名“members”を作成し、dbフォルダに入れる。
3.database.ymlでそのdbファイルのパスを入力して変更
4.[ruby script/generate scaffold member name:string acc:string]にて一連のファイルを作成

『情報』
OS :WindowsXP
Rails :2.3.5
Ruby :1.8.6
gem :1.3.5
SQLite:3.6.21

思いつく範囲では、
1.DBドライバのインストール時([gem install sqlite3-ruby])に「No definition …」がいっぱい出る。
2.DBファイルまたはそれが格納されているフォルダにアクセス権限が与えられていないかもしれない(ちゃんと許可されてました)

が原因のような気がしますがネットで調べると、どうやらそうではなさそうです。ちなみに他のPCで一からインストールし直しても同様のエラーが起きました。海外のページにも目を通しましたが良い解決案が出てないようなのでどなたかご存知でしたら教えてください。

初めまして。
Ruby on railsについて質問させていただきます。

http://localhost:3000/membersにアクセスすると「We're sorry, but something went wrong.」と表示されてしまいます。
logファイルでは、
「Status: 500 Internal Server Error
could not open database: unable to open database file
 C:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/errors.rb:62:in `check'
 … 」と出ており、dbファイルがopenできない状況にあります。
どのようにしたらこれを解決...続きを読む

Aベストアンサー

私の手元にある一部の PC でも同じ症状が出ます。時間がないので原因は探っていませんが、次の方法を試してみて下さい (1.2.5 の代わりに 1.2.3 を入れているだけです)。

gem install sqlite3-ruby --VERSION=1.2.3
gem uninstall sqlite3-ruby --VERSION=1.2.5

QRuby1.9.2でマジックコメントが反映されない

基本的な質問になるのですが、
CentOS5.5でRuby1.9.2を利用しているのですが、スクリプト中に、マジックコメントを
入れているにも関わらず、「invalid multibyte char」エラーが返ってきます。
追加で設定する情報があるのでしょうか。
お手数お掛けしますが、ご存知の方がいらっしゃれば、ご教示ください。

# ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

# cat hello.rb
# -*- encoding: utf-8 -*-
puts 'こんにちは'

# ruby -v hello.rb
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
hello.rb:2: invalid multibyte char (UTF-8)
hello.rb:2: invalid multibyte char (UTF-8)

# ruby -Ks hello.rb
hello.rb:2: invalid multibyte char (UTF-8)
hello.rb:2: invalid multibyte char (UTF-8)

基本的な質問になるのですが、
CentOS5.5でRuby1.9.2を利用しているのですが、スクリプト中に、マジックコメントを
入れているにも関わらず、「invalid multibyte char」エラーが返ってきます。
追加で設定する情報があるのでしょうか。
お手数お掛けしますが、ご存知の方がいらっしゃれば、ご教示ください。

# ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

# cat hello.rb
# -*- encoding: utf-8 -*-
puts 'こんにちは'

# ruby -v hello.rb
ruby 1.9.2p0 (2010-08-18 revision 29036) [x...続きを読む

Aベストアンサー

逆でしょう。
マジックコメントが効いてるから、invalid multibyte char (UTF-8)となるのでしょう。

マジックコメントにしても,htmlのcharset=にしても、「そのコードを使っています」と宣言するものであって、「そのコードに変換される」ものではないです。

保存するときにその出力コードを使うように、エディタを設定するとか、nkf等で後で変換するとかして、宣言したものと実際のコードを合せてください。

# 一部には、現在のコードと比較して、宣言されているコードで保存したり、コメント自体をファイルに合せて書き換えたり、警告表示したりするエディタもあります
# emacs + ruby-mode.el とか


> # cat hello.rb
> # -*- encoding: utf-8 -*-
> puts 'こんにちは'

となってますが、その表示に使った端末がEUC-JPになってないですか?

nkf --guess hello.rb
等で文字コードを確認してください

Qテーブル作成でエラーが出てきます。

こんにちは。
いつもお世話になっております。

テーブルを作っていたのですが、
ERROR 1060: Duplicate column name
というエラーが帰ってきてしまいます。

予約語とかぶっているフィールド名でもないし、
何が悪いのかわからなくって・・・。

どうかご指導よろしくお願いいたします。

Aベストアンサー

実際にエラーが出た create 構文を示していただければ指摘できると思います。

QTomcatは起動しますが初期index画面が表示できません

Tomcatについての質問は多数寄せられておりますが、
それらを参考にしてインストールなど行いますが、
どうしても後一歩のところで私の場合表示できないという、もどかしい状態になっております。
どうかご存知の方いらっしゃいましたらご教示お願い申し上げます。

Tomcat5.0をWindowsXPで起動しております。
Javaはj2sdk1.4.1_02です。
通常インストールした後Startup.batを起動し、IE6.0で
http://localhost:8080もしくは
http://127.0.0.1:8080と入力、Enterキーを押しますが、画面に
Connection refused
--------------------
Description: Connection refused
と表示されてしまいます。

下記に参考になるかわかりませんが、各種起動状態を記載いたします。アドバイスよろしくお願い申し上げます。

◆コマンドプロンプトで
>ping localhostと入力すると、
-----
Pinging yamamoto [127.0.0.1] with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
-----

と表示されます。また、
>telnet localhost 8080の場合は
-----
接続中: localhost...ホストへ接続できませんでした。 ポート番号 8080: 接続に失敗し
ました
-----
と表示されます。

お手数ですが、よろしくお願い申し上げます。

Tomcatについての質問は多数寄せられておりますが、
それらを参考にしてインストールなど行いますが、
どうしても後一歩のところで私の場合表示できないという、もどかしい状態になっております。
どうかご存知の方いらっしゃいましたらご教示お願い申し上げます。

Tomcat5.0をWindowsXPで起動しております。
Javaはj2sdk1.4.1_02です。
通常インストールした後Startup.batを起動し、IE6.0で
http://localhost:8080もしくは
http://127.0.0.1:8080と入力、Enterキーを押しますが、画面に
Connection re...続きを読む

Aベストアンサー

>Tomcatは起動しますが
とのことですが、Tomcatが起動していないと思います。

pingが通るのはTomcatと無関係で、PCが立ち上がっていれば帰ってくると思います。

telnet localhost 8080
で接続できないとのことなので、Tomcatが起動できていないのではないでしょうか?

QERROR1062:Duplicate entry.....というエラーが出てしまいました

いつもお世話になります。
データベースからSELECTで抽出したデータを別のテーブルにINSERTするSQLを実行したのですが、
ERROR1062:Duplicate entry.....というエラーが出てしまいました。
お詳しい方がいらっしゃいましたら、アドバイスをいただけませんでしょうか?よろしくお願いいたします。
【実行したSQL】
INSERT INTO tblA (dataA1, dataA2, dataA3, dataA4) SELECT "9001","AA",dataB1,dataB2 FROM tblB WHERE dataB1 = 52

tblAの主キー:dataA1とdataA2
tblBの主キー:dataB1

dataA1とdataA2はtblAの主キーとなっているため、重複してしまうということのようです。tblBの主キーはdataB1であるため、抽出されてくるデータは常に1件なので問題ないと期待していましたが、甘くなかったようです。何か良い方法はないものでしょうか?よろしくお願いいたします。

Aベストアンサー

「ERROR 1062」は、重複データを格納しようとした場合に出力されるエラーです。
既にdataA1='9001'&dataA2='AA'という行が、tblAに格納されているのですよね?

>抽出されてくるデータは常に1件なので問題ないと期待していました

「insert ~ select ~」を実行前に、既に同じデータが格納されているのでは?
あるいはprimary keyの指定が、質問中に記された通りでなく、2件以上検索されているかです。

>何か良い方法はないものでしょうか?

何をするための方法を、聞きたいのかが分かりませんが?

Q「基」と「元」の使い方

経験を"もと"に話す。
上記の場合の”もと”は元、基のどちらが正しいのでしょうか?
よろしくお願いします。

Aベストアンサー

はじめまして。

ご質問1:
<上記の場合の”もと”は元、基のどちらが正しいのでしょうか?>

「基」になります。

1.「経験を"もと"に話す」とは言い換えれば「経験にもとづいて話す」ことと同じです。

2.「もとづい(て)」は「もとづく」の連用形です。

3.「もとづく」は「基づく」という漢字しか存在しません。

4.従って、ここでは元、本、素などの漢字は適切ではありません。


ご質問2:
<経験を"もと"に話す。>

1.「~をもとに」という語感が「~を元に戻す」といった語感になるため、「元」の漢字を想定されたのだと思われます。

2.しかし、ここで使われる「もと」とは「土台」の意味になります。

3.他の漢字「元」「本」などには「土台」「ベース」といった意味はありません。

4.従って、ここでは基が適切な漢字となります。

以上ご参考までに。

Q「Duplicate entry '1' for key 'PRIMARY'」というエラー。

mysql> show fields from do;
+-----------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| parent_id | int(11) | YES | | 0 | |
| data_time | bigint(20) | YES | | NULL | |
| text | text | YES | | NULL | |
+-----------+------------+------+-----+---------+----------------+
というテーブルに、
insert into do values (1,1,1,'kkk');
などと、SQL文を実行すると、
Duplicate entry '1' for key 'PRIMARY'
というエラーが出ます。
これはどういう意味のエラーなのでしょうか?

mysql> show fields from do;
+-----------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| parent_id | int(11) | YES | | 0 | |
| data_time | bigint(20) | YES | | NULL | |
| text | text | YES | | ...続きを読む

Aベストアンサー

id というカラムに既に1という値が入ったレコードがあったりしませんか?
idカラムはプライマリキーに設定されているのでユニークな値を持たせる必要があります。
あと、idカラムはオートインクリメントが設定されているようなので、idカラムに値をあえて入れる必要は無いかもしれません。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報