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

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

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

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

1回答

1956閲覧

お問い合わせフォームページの作成

Nina

総合スコア10

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/10/12 09:09

###前提・実現したいこと

Home Inquiry Clothes Sign in Welcome to our clothing shop Sign up now!

現在railsで上記のような簡単なwebアプリケーションHPを作成しています。(服の通販サイトです)
Home, Inquiry, Clothes, Sign in, Sign up now!はボタンになっています。
上記のInquiryボタンを押すとフォームページに飛び、問い合わせ内容をフォーム内に記入し送信できるようにしたい。

###発生している問題・エラーメッセージ

routing error
uninitialized constant InquiriesController

<%= form_for @inquiry do |f| %>の部分のNomethode errorです。

###該当のソースコード
Indexページを作らずにnewアクションを作成し、Inquiryへnew.html.erbを作成(コードは下記)
<% provide(:title, 'Inquiry') %>

<h1>Inqury</h1>

<%= form_for @inquiry do |f| %>

<p> <%= f.label :name %><br> <%= f.label :email %><br> <%= f.text_field :content %> </p> <p> <%= f.submit %> </p> <% end %>

【Inquiry_controller.rb内のコード】

class InquiryController < ApplicationController
def new
@inquiry = Inquiry.new
end
end

【rake routes内容】

Prefix Verb URI Pattern Controller#Action new_user_session GET /users/sign_in(.:format) devise/sessions#new user_session POST /users/sign_in(.:format) devise/sessions#create destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy user_password POST /users/password(.:format) devise/passwords#create new_user_password GET /users/password/new(.:format) devise/passwords#new edit_user_password GET /users/password/edit(.:format) devise/passwords#edit PATCH /users/password(.:format) devise/passwords#update PUT /users/password(.:format) devise/passwords#update

cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PATCH /users(.:format) devise/registrations#update
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
root GET / first_page#home
first_page_clothes GET /first_page/clothes(.:format) first_page#clothes
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
inquiries GET /inquiries(.:format) inquiries#index
POST /inquiries(.:format) inquiries#create
new_inquiry GET /inquiries/new(.:format) inquiries#new
edit_inquiry GET /inquiries/:id/edit(.:format) inquiries#edit
inquiry GET /inquiries/:id(.:format) inquiries#show
PATCH /inquiries/:id(.:format) inquiries#update
PUT /inquiries/:id(.:format) inquiries#update
DELETE /inquiries/:id(.:format) inquiries#destroy

【routes.rb内】
Rails.application.routes.draw do
devise_for :users
root 'first_page#home'

get 'first_page/clothes'

resources :users

resources :inquiries
###試したこと

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
Linux仮想サーバー環境です

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

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

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

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

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

guest

回答1

0

InquiryController が単数形になっているからだと思います。
複数形にしてみてください


ありがとうございます。変更したのですがArgumentError in Inquiries#newというのが出ています。Argumenterrorとは具体的に何が原因なのでしょうか?

表示されるメッセージは正確に書きましょう。(ArgumentError と Argumenterror は別物です)

ArgumentError は 公式リファレンス によると

引数の数があっていないときや、数は合っていて、期待される振る舞いを持ってはいるが、期待される値ではないときに発生します。

という事です。

First argument in form cannot contain nil or be empty(エラーメッセージ)

エラー(例外)メッセージを読む練習をしましょう。おそらく英語が苦手なのでしょうが、ルー大柴になればだいたい大丈夫です。

ファースト アーギュメント イン form キャノット コンテイン nil オア ビーエンプティ

です。

一番目 引数 イン form できない 含む nil もしくは 空っぽ

つまり form の 1番目の引数はnilはダメだという事です。

@inquiry にはちゃんと値が入ってますか?

投稿2016/10/12 09:17

編集2016/10/13 07:02
hana-da

総合スコア1728

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

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

Nina

2016/10/13 04:55

ありがとうございます。変更したのですがArgumentError in Inquiries#newというのが出ています。Argumenterrorとは具体的に何が原因なのでしょうか?
Nina

2016/10/13 04:57

First argument in form cannot contain nil or be empty(エラーメッセージ) 以下の3行目が該当エラー部分です <% provide(:title, 'Inquiry') %> <h1>Inqury</h1> <%= form_for @inquiry do |f| %> <p> <%= f.label :name %><br> <%= f.label :email %><br>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問