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

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

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

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

Q&A

1回答

887閲覧

Railsで、ActionController::InvalidAuthenticityToken in UsersController#createエラーが出てします。

helo

総合スコア36

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/01/13 05:17

編集2020/01/18 14:24
$ git merge account-activation error: cannot stat 'app/views/user_mailer': Permission denied error: cannot stat 'app/views/user_mailer': Permission denied error: cannot stat 'app/views/user_mailer': Permission denied error: cannot stat 'app/views/user_mailer': Permission denied Updating a79ce83..323d78c ``````ここに言語を入力 ↓ new.html.erb <% provide(:title, 'Sign up') %> <% provide(:button_text, 'Create my account') %> <h1>Sign up</h1> <div class="row"> <div class="col-md-6 col-md-offset-3"> <%= render 'form' %> </div> </div> ↓ _form.html.erb <%= form_for(@user, url: yield(:url)) do |f| %> <%= render 'shared/error_messages', object: @user %> <%= f.label :name %> <%= f.text_field :name, class: 'form-control' %> <%= f.label :email %> <%= f.email_field :email, class: 'form-control' %> <%= f.label :password %> <%= f.password_field :password, class: 'form-control' %> <%= f.label :password_confirmation %> <%= f.password_field :password_confirmation, class: 'form-control' %> <%= f.submit yield(:button_text), class: "btn btn-primary" %> <% end %> ↓ contoroller class UsersController < ApplicationController before_action :logged_in_user, only: [:index, :edit, :update, :destroy] before_action :correct_user, only: [:edit, :update] before_action :admin_user, only: :destroy def index @users = User.where(activated: true).paginate(page: params[:page]) end def show @user = User.find(params[:id]) redirect_to root_url and return unless @user.activated? end def new @user = User.new end def create @user = User.new(user_params) if @user.save @user.send_activation_email #UserMailer.account_activation(@user).deliver_now flash[:info] = "Please check your email to activate your account." redirect_to root_url else render 'new' end end def edit end def update if @user.update_attributes(user_params) flash[:success] = "Profile updated" redirect_to @user else render 'edit' end end def destroy User.find(params[:id]).destroy flash[:success] = "User deleted" redirect_to users_url end private def user_params params.require(:user).permit(:name, :email, :password, :password_confirmation) end #beforeアクション #ログイン済みユーザーかどうか確認 def logged_in_user unless logged_in? store_location flash[:danger] = "please log in." redirect_to login_url end end #正しいユーザーかどうか確認 def correct_user @user = User.find(params[:id]) redirect_to(root_url) unless current_user?(@user) end #管理者かどうか確認 def admin_user redirect_to(root_url) unless current_user.admin? end end ```### 前提・実現したいこと 現在、Railsチュートリアル第11章をやっているところなのですが、ユーザー有効化機能の実装を行ったところで、一旦、ホームのSign up now!から入って仮のユーザーを登録してCreate my accountをクリックするとエラーページが出てしまいます。 いろいろ探ってはみたのですが、記述ミスは無いように思うのですが、 「UsersController#create」にあるエラーが読み取れんなく困っております。 詳しい方居られましたら、アドバイス頂けますと有難いです。 よろしくお願いします。 ### 発生している問題・エラーメッセージ

ActionController::InvalidAuthenticityToken in UsersController#create

### 該当のソースコード

エラーページに出てきているコードです。

def handle_unverified_request
raise ActionController::InvalidAuthenticityToken
end
end
end

### 試したこと 諸々のサイトを確認したのですが、よく解らず何も出来ていない状況です。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

winterboum

2020/01/13 13:07

createを呼ぶviewを見せてください
helo

2020/01/15 11:42

winterboum様 ご連絡ありがとうございます。 createを呼ぶviewは、以下で良いでしょうか?まだあまりrailsのファイル相関が分かっておらず、間違っておりましたらご指摘ください。 よろしくお願いします。 <% provide(:title, 'Sign up') %> <% provide(:button_text, 'Create my account') %> <h1>Sign up</h1> <div class="row"> <div class="col-md-6 col-md-offset-3"> <%= render 'form' %> </div> </div>
winterboum

2020/01/15 11:46

render 'form'  の方も。 _form.html.*ですね。 で、これらは 質問を編集してそちらに書いてください。<code>を使って頂くと読みやすくなりますので、そちらを。 あと、そのviewを書くcontrollerも欲しいです
helo

2020/01/15 12:33

winterboum様 更新しました。よろしくお願いします。
helo

2020/01/18 14:28

winterboum様 11章を再度記述しなおして、mergeしてみたのですが、user_mailerのみ撥ねられました。 何が原因なのか全く判らず、対処法ありましたらアドバイス頂けますと有難いです。
guest

回答1

0

ソース的に問題なさそうなので、たぶんですが
protect_from_forgery をuserscontrollerに追記してみてください

参考
https://qiita.com/_ayk_study/items/88269643c675fd4ca975

投稿2020/01/16 18:19

mariguranule

総合スコア204

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

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

helo

2020/01/18 03:05

mariguranule様 コメントありがとうございます。 この問題起きた後、以下の二つのファイルが何かおかしくなっていまして M app/controllers/users_controller.rb M config/environments/production.rb 困惑しております。 また、いくつかのファイルのコードが消えていたり訳が判らず もう一度、第11章をやり直そうかと思っています。 頂いた protect_from_forgery はusers controller.rbへ 貼り付けてやってみます。ありがとうございます。
helo

2020/01/18 14:31

mariguranule様 本日、11章を再度記述しなおして、mergeしてみたのですが、上記のようなuser_mailerがエラーとなってしまいます。何か対処法ありましたらご教示頂けますと有難いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問