0

Nick Sutterer のReform gemは素晴らしいように見えますが、何らかの理由で、概念実証用の Rails アプリに適用する方法を理解できません。私はドキュメントと多くのブログ投稿を読みましたが、それがどのように機能するかをまだ完全には理解していません.

次の基準が与えられた場合、モデル、フォーム オブジェクト クラス、ビュー、およびコントローラーのコードはどのようになりますか?

  • アプリにはUserPetモデルがあります
  • User.emailサインアップフォームは、と彼を受け入れますPet.name
  • ユーザーは有効な電子メール アドレスがないとサインアップできません
  • ユーザーがサインアップするUserと のアカウントが作成され、pet行が作成されて自動的にユーザーに関連付けられます

サンプル モデル:

ユーザー

# app/models/user.rb
class User < ActiveRecord::Base
  has_many :pets
end

彼のペット

# app/models/pet.rb
class Pet < ActiveRecord::Base
  belongs_to :user
end

ありがとうございました!

4

1 に答える 1

2
class UserForm < Reform::Form
  property :email

  property :pet, populate_if_empty: Pet do
    property :name
  end
end

次に、次のようにフォームをインスタンス化します。

UserForm.new(User.new)

検証は逆に機能します。

UserForm.new(User.new).validate(params[:user])

本を買うことをお勧めします。これは秘密の宣伝ではありませんが、私は基本的にここで自分自身を繰り返していました。

于 2014-12-31T00:33:14.657 に答える