मेरे परियोजना में निम्नलिखित मार्गों है:अपरिभाषित विधि `authenticate_user! एपीआई :: वसीयत में PostsController/रेल 4
root 'home#index'
namespace :api, defaults: { format: :json } do
devise_for :users, controllers: { sessions: "api/sessions" }
resources :posts
end
उपयोगकर्ता मॉडल:
class User < ActiveRecord::Base
has_many :posts, dependent: :destroy
has_many :comments, dependent: :destroy
validates :name, presence: true
devise :database_authenticatable, :rememberable
end
सत्र नियंत्रक:
class Api::SessionsController < Devise::SessionsController
def create
@user = User.find_for_database_authentication(email: params[:user][:email])
if @user && @user.valid_password?(params[:user][:password])
sign_in(@user)
else
warden.custom_failure!
@errors = [ 'Invalid email or password' ]
render 'api/shared/errors', status: :unauthorized
end
end
end
आवेदन नियंत्रक:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
#protect_from_forgery with: :exception
end
पिछले मेरी पोस्ट नियंत्रक पर:
class Api::PostsController < ApplicationController
before_action :authenticate_user!, only: [ :create ]
def create
current_user.posts.create!(post_params)
end
private
def post_params
params.require(:post).permit(:title, :content)
end
end
लेकिन जब मैं एक नई पोस्ट बनाने का प्रयास करें मैं निम्नलिखित त्रुटि मिलती है: "अपरिभाषित विधि` authenticate_user! Api :: PostController "। अगर मैं इसे हटा देता हूं, तो मुझे 'current_user' विधि के बारे में त्रुटि मिलती है। क्या समस्या है? मैं इसे कैसे ठीक कर सकता हूं? अग्रिम धन्यवाद !!!
निकालने का प्रयास करें! –