1

Rails4 アプリ。

を使用form_tagしてフォームを作成し、フォームがモデルに対応していない場合にエラーを処理および表示するための一般的な方法 (ある場合) を知りたいですか?

私が見つけたすべての例は、モデルと典型的な@model.errors.any?ビュー条件に関連していますが、これはform_tag.

4

2 に答える 2

1

モデルを動作させないクラスに ActiveModel::Validations を含めることをお勧めしますが、検証が必要です。例として、Ticket クラスを考えてみましょう。

レール4

class Ticket
  include ActiveModel::Model

  attr_accessor :title, :description

  validate_presence_of :title
  validate_presence_of :description
end

さらに詳細については、Rails 4 の activemodel/lib/active_model/model.rb コードを参照して、Rails 4 で「ActiveModel::Model をインクルード」する理由を理解してください。

def self.included(base)
  base.class_eval do
    extend ActiveModel::Naming
    extend ActiveModel::Translation
    include ActiveModel::Validations
    include ActiveModel::Conversion
  end
end

レール3

class Ticket
  include ActiveModel::Conversion
  include ActiveModel::Validations
  extend ActiveModel::Naming

  attr_accessor :title, :description

  validate_presence_of :title
  validate_presence_of :description
end

Ticket クラスは、これらのメソッドをエラー検証に使用するモデルのように動作します

 Ticket.new(ticket_params)
 @ticket.valid?
 @ticket.errors
 @ticket.to_param

あなたのお悩み解決の一助になれば幸いです。

于 2013-10-16T16:02:30.693 に答える