Rails APIを使ってjsonファイルを投稿しようとしています。 私が修正しようとしましたが、この私の問題 を実行することはできません。CSRFトークンの信頼性を確認できません! POSTのRAILS API
Severのログ:
Started POST "/students/" for 127.0.0.1 at 2016-09-17 17:45:33 +0700
ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations".* FROM "schema_migrations"
Processing by Devise::RegistrationsController#create as */*
Parameters: {"student"=>{"name"=>"Duong", "score"=>"10"}, "registration"=>{"student"=>{"name"=>"Duong", "score"=>"10"}}}
Can't verify CSRF token authenticity.
Unpermitted parameters: name, score
(0.0ms) begin transaction
(0.0ms) rollback transaction
Rendering C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/devise-4.2.0/app/views/devise/registrations/new.html.erb within layouts/application
Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/devise-4.2.0/app/views/devise/shared/_links.html.erb (10.0ms)
Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/devise-4.2.0/app/views/devise/registrations/new.html.erb within layouts/application (60.0ms)
Completed 500 Internal Server Error in 442ms (ActiveRecord: 0.0ms)
Student.rb
これは私の学生モデル
class Student < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
Application_controllerです
私は問題を解決しました=> null_se ssion
class ApplicationController < ActionController::Base
protect_from_forgery with: :null_session
end
Student_controller
class Api::StudentsController < ApplicationController
def index
students = Student.all
render json: students, status: 200
end
def show
response_with Student.find(params[:id])
end
def create
student = Student.new(student_params)
#if you save successfully than response with json data and status code 201
if student.save
render json: user, status: 201, location: student
else
render json: {error: user.errors}, status: 422
end
end
private
def student_params
params.require(:student).permit(:name, :score)
end
end
router.rb
Rails.application.routes.draw do
devise_for :students
namespace :api, path: '/',constraints: {subdomain: 'api'} do
resources :students, only: [:index, :show, :create]
end
end
しかし、私は
{"student": {"name": "Duong", "score": "10"}}
持たをapi.1312100.com/students/するポストを送りますエラー:
500 internal server error
を持っていますかあなたの
には、<%= csrf_meta_tags%>? – luissimoどこにある
? –CSRFエラーについてはあまり言えません。 'Unpermitted parameters:name、score'エラーを修正する必要があります。これらのパラメータをホワイトリストに入れてみてください。 – Sajan