railsでWEBサイト作成時に、下記エラーメッセージが表示され、正常に処理が出来ません。
エラーメッセージ
・NoMethodError in Posts#new
Showing /home/ec2-user/environment/photo2/app/views/posts/new.html.erb where line #7 raised:
undefined method `post01s_path' for #<#Class:0x00007f83d475be08:0x00007f83d475a260>
Did you mean? posts_path
Extracted source (around line #7):
5 <h1>新規Photo投稿</h1> 6 <!--<form method="post" action="#" enctype="multipart/form-data">--> 7<%= form_for @post do |f| %> 8 <!-- ファイル選択ボタン --> 9 <div class="file_wrap"> 10 <input type="file" name="upload_file" />
・モデル(post01.rd)
class Post01< ApplicationRecord belongs_to :user01 has_many :post_image01s, dependent: :destroy end
・ヘルパー
module PostsHelper end
・コントローラー
class PostsController < ApplicationController def new @post = Post01.new end #投稿処理 def create #ここに処理を実装 end end
・ルーティング
$ rails routes Prefix Verb URI Pattern Controller#Action root GET / users#top top GET /top(.:format) users#top profile_edit GET /profile/edit(.:format) users#edit profile GET /profile(/:id)(.:format) users#show follower_list GET /follower_list(/:id)(.:format) users#follower_list follow_list GET /follow_list(/:id)(.:format) users#follow_list sign_up GET /sign_up(.:format) users#sign_up sign_up_process POST /sign_up(.:format) users#sign_up_process sign_in GET /sign_in(.:format) users#sign_in sign_in_process POST /sign_in(.:format) users#sign_in_process sign_out GET /sign_out(.:format) users#sign_out new_posts GET /posts/new(.:format) posts#new edit_posts GET /posts/edit(.:format) posts#edit posts GET /posts(.:format) posts#show PATCH /posts(.:format) posts#update PUT /posts(.:format) posts#update DELETE /posts(.:format) posts#destroy POST /posts(.:format) posts#create
申し訳ございませんが、対応方法のご教示をお願い致します。
追記です。
外部キーの設定を誤ってしまった可能性があります・・・
もし訂正する必要がございましたら、方法をご教示いただけますでしょうか?
class CreatePost01s < ActiveRecord::Migration[5.1] def change create_table :post01s do |t| t.references :user, foreign_key: true t.text :caption t.timestamps end end end class CreatePostImage01s < ActiveRecord::Migration[5.1] def change create_table :post_image01s do |t| t.references :post, foreign_key: true t.string :name t.timestamps end end end
モデル
class Post01< ApplicationRecord belongs_to :user01 has_many :post_image01s, dependent: :destroy end class PostImage01 < ApplicationRecord belongs_to :post01 end class User01 < ApplicationRecord #リレーション(1:N) has_many :post01s #データの保存前に、パスワードを暗号化するメゾット(convert_passworc)を実行するよう設定 before_save :convert_password #パスワードを暗号化するメゾット def convert_password self.password = User01.generate_password(self.password) end #パスワードをmd5に変換するメゾット def self.generate_password(password) #パスワードに適当な文字列を付加して暗号化する salt = "h!hgamcRAdh38bajhvgai17ysvb" Digest::MD5.hexdigest(salt + password) end #バリテーション VALID_EMAIL_REGEX = /\A[\w\-.]+@[a-z\d\-.]+.[a-z]+\z/i validates :name, presence: true validates :email, presence: true, format: {with: VALID_EMAIL_REGEX}, uniqueness: true validates :password, presence: true, length:{minimum: 6} end 宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/13 10:00
2020/08/13 10:25
2020/08/13 13:08
2020/08/13 14:02
2020/08/14 04:16
2020/08/14 06:58
2020/08/14 07:03