2

モデルで定義されているように検証を適切に処理するために、部分ビューのフォームが空のモデルを参照する適切な方法は何ですか。部分ビューで新しい空のモデルをインスタンス化し、それをフォームに渡す必要がありますか? これが私が取り組んでいるものです...

モデル

class NewsletterSignup < ActiveRecord::Base
  def self.columns()
    @columns ||= [];
  end

  def self.column(name, sql_type = nil, default = nil, null = false)
    columns << ActiveRecord::ConnectionAdapters::Column.new(name, default, sql_type, null)
  end

  def persisted?
    false
  end

  column :first_name, :string
  column :last_name, :string
  column :email, :string
  column :zip, :string

  validates :first_name, :last_name, :email, :zip, :presence => true
  validates :email, :format => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
  validates :zip, :format => /^\d{5}$/
end

部分図

<%
    signup = newsletter_signup.new
%>

<%= simple_form_for(signup, ...) do |f| %>
    <%= f.input :first_name, :label => "First Name:" %> 
    <%= f.input :last_name, :label => "Last Name:" %>
    <%= f.input :email, :label => "Email:" %>
    <%= f.input :zip, :label => "Zip:" %>

    ...
<% end %>

しかし、このような新しいモデルをインスタンス化できないようです。ビューで参照する必要があると思います。(注意してください、私は Rails を初めて使用しますが、10 年以上のプロのソフトウェア開発経験があります。そのため、Rails 構成の一部が私にとって見慣れないものに見えたり、単純なものを見落としている可能性がある場合は、申し訳ありません!)

4

1 に答える 1