NoMethodError in HomeController#index
undefined method `id' for nil:NilClass とエラーが出ました。
@id = params[:id] @email = [:email] if @id == @user.id && @email == @user.email render :text => "成功" else render :text => "失敗"
の部分がおかしいと言われました。
undefined method `id'と言うことはif @id == @user.id のidはメソットとして見られていると言うことでしょうか?(変数として定義したのですが)
どう直せば良いのでしょうか?
home_controllerには
class HomeController < ApplicationController before_filter :find_user, only: [:index] def index @id = params[:id] @email = [:email] if @id == @user.id && @email == @user.email render :text => "成功" else render :text => "失敗" end end def create userData = UserData.new(create_params) user = User.find(params[:id]).to_json # エラー処理 unless userData.save @error_message = [memo.errors.full_messages].compact end end private def find_user @user = User.find(params[:id]) # You should specify this code what are your comparing to. end end
routes.rbには
Rails.application.routes.draw do devise_for :users root to: "home#index" get 'home/index' post 'home/index' namespace :home, default: {format: :json} do resources :index, only: :create end end
と書きました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。