我正在尝试使用ruby及其RESTful路由构建一个RESTful API。我是全新的红宝石(这是我的第一个项目),我发现它有一个非常陡峭的学习曲线。我试图生成一个简单的用户模型,并试图用它创建一个CRUD示例。目前,我被困在从已发布的json对象创建控制器内的用户对象上。我已经实现了自己的create方法,并试图让它回显我发布给它的json对象。出于某种原因,我得到的是404返回和一页显示我的路。下面是我用来实现API的模型、控制器、路由文件和迁移文件,为什么它不能像预期的那样工作?
用户模型:
#the user model
class User < ActiveRecord::Base
validates :password, :email, :first_name, :last_name, :presence =>true
validates_uniqueness_of :email
enddb迁移文件:
#migration file
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :last_name, :null => false
t.string :email, :null => false
t.string :first_name, :null => false
t.string :password, :null => false
t.timestamps
end
end
end路线档案:
Rails.application.routes.draw do
# Define api routes for user
namespace :api do
resources :user, :defaults => { :format => 'json' }
end
end用户控制器文件:
#user controller
class UserController < ApplicationController
def create
puts params
end
end我做错了什么?为什么我的post对象没有显示在控制台上?
发布于 2014-06-17 05:28:01
最简单的方法是将这条线放入控制器中。
class UserController < ApplicationController
skip_before_filter :verify_authenticity_token
def create
puts params
end
end因为你是纽比,所以不要为被困在一件事上使用上面的方法。有关详细信息,请参阅此link
并检查您的允许参数。
CSRF令牌的另一种解决方案是在标题中传递它,如下所示:
headers: {
'X-Transaction': 'POST Example',
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}发布于 2014-06-17 03:58:54
在用户控制器中的create操作中,尝试重定向到另一个页面或呈现另一个视图。我相信这将消除路由错误。
class UserController < ApplicationController
def create
puts params
redirect_to(another_page)
end
endhttps://stackoverflow.com/questions/24255170
复制相似问题