5
使用郵遞員在數據庫中創建一些JSON POST,您可以使用代碼片段進行測試。得到一個錯誤,說方法'電影'是未定義的,但該方法永遠不會被調用。RoR - 未定義的方法`電影'爲#<Movie:0x007fa43a0629e0>
{"movie": {
"title": "Its a Mad Mad Word",
"year": "1967",
"summary": "So many big stars"
}
}
下面是代碼和誤差如下:
undefined method 'movie' for #<Movie:0x007fcfbd99acc0>
應用控制器
class ApplicationController < ActionController::Base
protect_from_forgery with: :null_session
end
控制器
module API
class MoviesController < ApplicationController
...
def create
movie = Movie.new({
title: movie_params[:title].to_s,
year: movie_params[:year].to_i,
summary: movie_params[:summary].to_s
})
if movie.save
render json: mov, status: 201
else
render json: mov.errors, status: 422
end
end
private
def movie_params
params.require(:movie).permit(:title, :year, :summary)
end
end
end
條型號
class Movie < ActiveRecord::Base
validates :movie, presence: true
end
遷移
class CreateMovies < ActiveRecord::Migration
def change
create_table :movies do |t|
t.string :title
t.integer :year
t.text :summary
t.timestamps null: false
end
end
end
路線
Rails.application.routes.draw do
namespace :api do
resources :movies, only: [:index, :show, :create]
end
end
沒有使用Rails的作爲API,但在你的模型中驗證看起來很腥。 –
既然你是初學者,我真的需要說,我喜歡你的問題看起來如何! –