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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

解決済

1回答

4046閲覧

Railsで投稿フォーム(form_for)を作りたい(が、NomethodErrorが発生)

moratorium

総合スコア33

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2017/01/09 05:35

編集2017/01/09 07:03

railsで授業レビューの掲示板を作成中なのですが
投稿機能をnewメソッドで作成しているときに
下記エラーが出てきており解決ができません。

初歩的な質問で恐縮ですが
どなたかご教示ください。

エラー文

NoMethodError in Reviews#new
Showing /vagrant/project/moratle/app/views/reviews/new.html.erb where line #9 raised:

undefined method `reviews_path' for #<#Class:0x007ff1404d2dd8:0x007ff140532e40>

Extracted source (around line #9): 7 <div class="main-contents1" > 8 9 <%= form_for (@review) do |f| %> 10 <div class="content_new_name"> 11 <%= f.label :nickname %> 12 <%= f.text_field :nickname, placeholder: 'ニックネーム', value: '' %>

コントローラー

reviews_controller.rb

class ReviewsController < ApplicationController def new @review = Review.new end def create end end

ルーティング

routes.rb

Rails.application.routes.draw do devise_for :users root to: "top#index" get 'campuses' => 'campuses#index' get 'campuses/:university_id' => 'campuses#departmentlist' get 'campuses/:university_id/department:department_id' => 'campuses#campuslist' get 'campuses/:university_id/department:department_id/campus:campus_id/' => 'campuses#campusreview' get 'campuses/:university_id/department:department_id/campus:campus_id/review/new' => 'reviews#new' get 'campuses/:university_id/department:department_id/campus:campus_id/reviews' => 'reviews#create' get 'search' => 'top#search' get 'search' => 'campuses#search' resources :users, only: [:show, :edit, :update] get 'industrylist' => 'industries#index' get 'article' => 'articles#index' end

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

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

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

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

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

guest

回答1

0

ベストアンサー

form_forでモデルを引数に渡すと、submitした時にPOST reviews_pathに飛ぶと思いますが、上記の定義ですと対応するルーティングが行われていません。

対応としては、form_forにurlオプションで飛ばしたいurlやパスなどを指定するか、ルーティングを

post 'campuses/:university_id/department:department_id/campus:campus_id/reviews' => 'reviews#create', as: "reviews"

などのようにpostでかつ asオプションにてエイリアスを指定してください。

投稿2017/01/11 06:55

devsx

総合スコア173

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問