以下がコードです
user.rb
class User < ApplicationRecord has_secure_password validates :name, {presence: true} validates :email, {presence: true, uniqueness: true} end
routes.rb
Rails.application.routes.draw do root 'users#index' namespace :admin do resources:users end resources:posts # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html end
users_controller.rb
class UsersController < ApplicationController def index @users = User.all end def create @users = User.new(user_params) @user.save redirect_to 'posts#index' end private def user_params params.require(:user).permit(:name,:email,:admin,:password,:password_confirmation) end end
index.html.erb
<h1>新規登録</h1> <%= link_to 'トップへ',posts_path %> <%= form_with model:[:admin, @user],local:true do |f| %> <%= f.text_field :name %> <%= f.text_field :email %> <%= f.cheak_box :admin,class: 'form-check-input' %> <%= f.text_field :password%> <%= f.text_field :password_confirmation%> <%= f.submit %> <% end %>
20190702021155_add_admin_to_users.rb
class CreateUsers < ActiveRecord::Migration[5.0] def change create_table :users do |t| t.string :name, null:false t.string :email, null:false t.string :password_digest, null:false t.timestamps t.index :email, unique:true end end end
20190703021554_add_image_to_post.rb
class AddAdminToUsers < ActiveRecord::Migration[5.0] def change add_column :users, :admin, :boolean, default: false end end
index.html.erbの<%= form_with model:[:admin, @user],local:true do |f| %>にエラーが出ます
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
index.html.erbの<%= form_with model:[:admin, @user],local:true do |f| %>にエラーが出ます よろしくお願いします。
とありますが、エラーメッセージでは
<%= form_for model:[:admin, @user],local:true do |f| %>
になっています。
form_with だとどうなりますか?
投稿2019/07/08 07:51
総合スコア23331
0
NoMethodError in Users#index にはどの 名前 が、なのかの情報も付いていると思います。質問でそれを落とすと解決が長引きます。
password がないと言われてますね、多分。
Userには passwrd も password_confermation もないと思います。
ユーザ登録画面とかパスワード変更画面とかに出てくるだけ。
db/schema.rb そみるとUserにどういう項目があるかわかりますから、そこにあるもの、
もしくは、Userモデルで定義したmethodなど
である必要があります
投稿2019/07/03 21:04
総合スコア23331
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Mugheatさんの指摘の他に気になるのが @userの単数形と複数形の使い分けがおかしいところがあります。
単数形複数形は厳密に使い分けて下さい。
Railsシステムが、単複で動作が変わることがあります。
codeを読む人間が勘違いします。
今回は後者ですが。
例えばここ、間違いですよね
def create @users = User.new(user_params) @user.save redirect_to 'posts#index' end
投稿2019/07/03 20:21
総合スコア23331
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
erb
1<%= form_with model:[:admin, @user],local:true do |f| %>
の@user
ってのはどこで用意されてるんですか?
質問が編集されたので回答を変えます。
とはいえ、↑の問題にはそのうちぶつかるかと思います。
form_with
はRails5.1+で使えるヘルパーです。
おそらくRailsのバージョンが足りてないのではないでしょうか。
投稿2019/07/03 09:48
編集2019/07/10 02:33総合スコア2344
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/08 07:06
2019/07/08 08:55
2019/07/10 02:15
2019/07/15 01:56
2019/07/15 02:21
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/10 02:14
2019/07/10 02:49