LoginSignup
0
0

More than 5 years have passed since last update.

form_forにFormオブジェクトを渡したとき、method属性に適切な値が入らなかった

Posted at

form_forにActiveRecord::Baseのオブジェクトを渡せば、
新規登録の場合はmethod="post"、編集の場合はmethod="patch"に自動設定してくれる。
けれども以下のように定義したFormオブジェクトを渡すと、
新規の場合も編集の場合もmethod="post"になってしまっていた。

user_form.rb
class UserForm
  include ActiveModel::Model
end

結論として、persisted?メソッドを定義していなかったのが原因だった。

form_forメソッド内で、persisted?メソッドの結果によって、
method属性を決定している。

DBからデータを読み込んで、Formオブジェクトを生成したときは、
persisted?メソッドがtrueになるように実装すれば良い。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0