我一直在尝试这个但是没有得到我正在做的错误, 这是我的控制器
class UsersController < ApplicationController
puts "before"
def create
puts "hiiiiiiiiiiiiiiiiii"
puts params
User.create(:birthday=> params["dateOfBirth"],:email=> params["emailId"])
end
puts "after"
end
这是我的路线
发布'/ sign_up',:to =&gt; “用户#创建”
这给了我一个200 OK的响应代码,但没有真正进入方法“创建”并将值存储在数据库中 它是“之前”和“之后”但不是“hiiiiii” 看起来我正在做一些愚蠢的错误,但需要帮助才能完成它 感谢!
这就是我在客户端进行查询的方式。
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
}
});
var registration = function(){
var user = {
firstname : $("#firstname").val(),
lastname : $("#lastname").val(),
emailId : $("#email").val(),
password : $("#psw").val(),
dateOfBirth : $("#birthday").val() };
$.post("/sign_up", user, function(data){
console.log(data);
},'json');
};
答案 0 :(得分:0)
对于非常好的调试pupposes使用gem rails-pry。将gem'prisy-rails'添加到gemfile中,运行'bundle install'。现在,您可以将“binding.pry”添加到代码的任何位置,当您的应用程序到达此行时,您将可以从控制台完全访问此代码。它比使用'puts'更好。 对于你的情况,它将是:
class UsersController < ApplicationController
puts "before"
def create
binding.pry
User.create(:birthday=> params["dateOfBirth"],:email=> params["emailId"])
end
puts "after"
end
运行应用程序,打开浏览器并转到网址。比打开控制台,你将'内部'创建行动
<强>更新强> 看看我的例子,我创造了它并且一切正常
型号:User.rb
class User < ActiveRecord::Base
attr_accessible :city, :email, :gender, :name
end
Controller:UsersController.rb
def create
binding.pry
@user = User.new(params[:user])
session[:user] = @user
respond_to do |format|
if @user.save
format.html { redirect_to users_path, notice: 'User was successfully created.' }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
users.js:
$(function() {
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
}
});
var registration = function(){
alert('a');
var user = {
name : $("#name").val(),
city : $("#city").val(),
gender : $("#gender").val()
};
$.post("/sign_up", user, function(data){
console.log(data);
},'json');
}
$('#but').click(registration);
});
new.html.erb:
<form>
<input id="name">
<input id="city">
</form>
<button id="but">create</but>
routes.rb中:
resources :users
post '/sign_up', :to => "users#create"
root :to => 'users#new'
我运行应用程序,填写表单,打开控制台 - &gt;我在创造行动