0

このサイトのチュートリアルに従って、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渡されたパラメーターでnull 以外の文字列に設定されていることが明らかな場合に、実行されている検証クエリで null であるインスタンスをチェックしている方法を理解するのが困難です。

4

1 に答える 1

0

「POST /artists」コントローラ アクションのソース コードは何ですか?

その作成アクションは、params適切にアクセスする必要があります。この場合、次のようなものです。

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

あなたのアクションArtist.createは正しいで呼び出していますparamsか?

于 2012-10-07T01:10:20.473 に答える