Rails - 通过jQuery验证错误创建对象

时间:2012-10-07 00:59:57

标签: jquery ruby-on-rails-3

我一直在this site上按照教程创建一个jQuery CRUD表单。

我有一个模型Artist,它只有一个验证,用于检查display_name字段的唯一性。

在POST创建动作时,WEBrick日志的相关部分显示以下内容:

Started POST "/artists" for 10.1.1.1 at 2012-10-07 13:50:00 +1300
Processing by ArtistsController#create as JS
  Parameters: { (ommited parts for brevity) , "artist"=>{"display_name"=>"Banksy"}, "commit"=> "Create Artist"}
  User Load (0.6ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
  Artist Load (0.5ms)  SELECT `artists`.* FROM `artists`
   (0.4ms)  BEGIN
  Artist Exists (1.4ms)  SELECT 1 AS one FROM `artists` WHERE `artists`.`display_name` IS NULL LIMIT 1
   (0.5ms)  ROLLBACK
  Rendered artists/create.js.erb (0.5ms)
Completed 200 OK in 71ms (Views: 55.5ms | ActiveRecord: 3.4ms)

我很难理解,当显而易见的是,在传递的参数中,display_name被设置为非空字符串,但在运行的验证查询中,它正在检查它所在的实例空。

1 个答案:

答案 0 :(得分:0)

" POST /艺术家"的源代码是什么?控制器动作?

创建操作必须适当地访问params。在这种情况下,例如:

def create
  @artist = Artist.create(params[:artist])
  # then render or redirect
end

您的操作是否使用正确的Artist.create来调用params

相关问题