質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

2837閲覧

rails We're sorry, but something went wrong.を解決したい

ochiaishiro

総合スコア28

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1グッド

0クリップ

投稿2017/03/31 03:01

###質問
Ruby on Railsを勉強中です。初めての質問です。よろしくお願いします。

「Ruby on Rails チュートリアル」3.1セットアップのところで
「hello, world!」に「helloこんにちは!, world!みなさん!」と2バイト文字を追加したら、下記のエラーが出ました。
rails We're sorry, but something went wrong.

なお、「Ruby on Rails チュートリアル」3.1セットアップを完了し、ローカルでRailsサーバを起動し、「hello, world!」が表示されることを確認しています。

何をどうしたらいいか、教えてください。

###ログの状況

ログをみると、以下のログが出力されていますが、エラーは出ていません。
Started GET "/" for ::1 at 2017-03-31 11:31:51 +0900

ちなみに、「hello, world!」に戻した時のログは以下のようになっていて、renderingが成功しています。
Started GET "/" for ::1 at 2017-03-31 11:34:21 +0900
Processing by ApplicationController#hello as HTML
Rendering html template
Rendered html template (0.0ms)
Completed 200 OK in 46ms (Views: 25.9ms | ActiveRecord: 0.0ms)

###該当のソースコード
下のコードは" # "を" * "に置き換えています。

Rails.application.routes.draw do

root 'application#hello'
end

class ApplicationController < ActionController::Base
protect_from_forgery with: :exception

def hello

  • render html: "hello, こんにちは!!世界world!"
render html: "hello, world!"

end
end

###開発環境:

  • Ruby version
    ruby 2.2.6p396 (2016-11-15 revision 56800) [i386-mingw32]

  • System dependencies
    Rails 5.0.0.1
    puma (3.4.0)
    sqlite3 (1.3.11)

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

当方mac環境なので自信がないのですが
確かwindows環境だと

Rubyのプログラムの中で日本語を使用する場合には、1行目に「# coding: utf-8」を記述した上で文字コードを UTF-8(BOM無)にする必要があったと思います。

ruby

1# coding: utf-8 2class ApplicationController < ActionController::Base 3protect_from_forgery with: :exception 4 5def hello 6 7#render html: "hello, こんにちは!!世界world!" 8render html: "hello, world!" 9end 10end 11

まあ、通常、rubyでは、viewを使って描画するのでうまくいかなくても次に進んでしまって
いいかもしれません。

あと</>のボタンを押してここに言語を入力をrubyにすると
上記の記述ができるので覚えておいてください

投稿2017/03/31 08:01

moke

総合スコア2241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ochiaishiro

2017/04/05 01:11 編集

ご助言いただき、ありがとうございます。 1行目に「# coding: utf-8」を記述した上で :これは分かりました。 文字コードを UTF-8(BOM無)にする     :どこで何をすれば分かりません。 テキストエディターで、保存するときに、文字コードを UTF-8にして保存するということでしょうか? 私が使用しているテキストエディターは、TeraPadです。 TeraPadで選べるUTF-8系の文字コードは、UTF-8とUTF-8Nの2つですが、UTF-8(BOM無)はどちらでしょうか? ちなみに、エラーが出た時のファイルは、UTF-8で保存しています。 初心者的な質問で申し訳ありません。よろしくお願いします。
moke

2017/04/05 01:33 編集

多分UTF-8Nで良いと思います。 でも、片方でできなかったら、両方試して見る、と言うTrialAndTestの精神が プログラム開発には必要だと思います。(最悪バックアップに戻ればいいのですから 後、「UTF-8(BOM無) terapad」でググって見るとか…。 ついでに、i386-mingw32を見ればわかるのですが、一応OSとそのversionは書いた方がいいですよ
guest

0

自己解決

PCを再起動し、Rails serverを起動し、エラーのもととなっていた"hello, こんにちは!!世界world!"をいったん削除し、以下の4つのケースを試したところ、何故か、いずれも正しく表示されました。
なお、1行目に「# coding: utf-8」は挿入していません。ファイルの文字コードはutf-8のままです。

  1. "hello, world!"
  2. "hello, aaaaaaaaaaaaa world!"
  3. "hello, aaaaaaaaaaこんにちは!!世界aaaaa world!"
  4. "hello, こんにちは!!世界world!"

教訓:原因不明な場合でPCを再起動できる状態の場合は、PCを再起動し、Rails serverを起動し、もう一度試してみる。
ありがとうございました。

投稿2017/04/05 02:18

ochiaishiro

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

moke

2017/04/05 05:10

おお、良かったですね。 Windowsは謎の多いOSなので仕方ないですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問