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

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

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

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

Q&A

1回答

1476閲覧

railsにてNoMethodErrorエラー

blame.sanakan

総合スコア8

Ruby on Rails

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

0グッド

0クリップ

投稿2017/11/12 15:39

###前提・実現したいこと
デフォルトの画像設定が上手くいきません。
Progateで学習した内容をcloud9を使って復習しているのですが標題のエラーで詰まっています。

過去の質問(https://teratail.com/questions/89880)と同じで一通り試しましたが改善出来ません。

###発生している問題・エラーメッセージ
db/schema.rbの中身にt.string "image_name"と記載されているのですが定義されていないとういエラーになってしまいます。
イメージ説明

db/schema.rbの中身

1 2ActiveRecord::Schema.define(version: 20171112143945) do 3 4 create_table "posts", force: :cascade do |t| 5 t.text "content" 6 t.datetime "created_at", null: false 7 t.datetime "updated_at", null: false 8 end 9 10 create_table "users", force: :cascade do |t| 11 t.string "name" 12 t.string "email" 13 t.datetime "created_at", null: false 14 t.datetime "updated_at", null: false 15 t.string "image_name" 16 end 17 18end 19

下記はusers_controller.rbのcreateアクションになります。

def create @user = User.new(name: params[:name], email: params[:email]) image_name:"about.jpg" if @user.save flash[:notice] = "ユーザー登録が完了しました" redirect_to("/users/#{@user.id}") else render("users/new") end end

何か解決策がありましたらご教授ください。
宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

閉じカッコの位置が間違っているだけのようです。
コードの字下げを揃えていればすぐに気付くと思います。

【誤】

ruby

1def create 2 @user = User.new(name: params[:name], 3 email: params[:email]) 4 image_name: "about.jpg" 5 6 if @user.save 7 flash[:notice] = "ユーザー登録が完了しました" 8 redirect_to("/users/#{@user.id}") 9 else 10 render("users/new") 11 end 12end

【正】

ruby

1def create 2 @user = User.new(name: params[:name], 3 email: params[:email], 4 image_name: "about.jpg") 5 6 if @user.save 7 flash[:notice] = "ユーザー登録が完了しました" 8 redirect_to("/users/#{@user.id}") 9 else 10 render("users/new") 11 end 12end

投稿2017/11/12 21:31

tkmtmkt

総合スコア1800

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

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

blame.sanakan

2017/11/13 09:07

>tkmtmktさん 回答ありがとうございます。 初歩的なミスでしたが気づけませんでした。 上記の通り試したらエラーは出なくなりましたが初期画像の設定が出来ず[?]が表示されます。 publicフォルダ内に”about.jpg”を配置してます。 [?]画像を新しいタブで開くと No route matches [GET] "/user_images/about.jpg" Rails.root: /home/ubuntu/workspace というエラーになってしまいます。 宜しくお願い致します。
tkmtmkt

2017/11/14 16:52

"/user_images/about.jpg"を探そうとして見つからないのだから /user_images に about.jpg を置けば良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問