0

Rails 3 では、単純な連絡先フォームを実装しようとしていますが、ルーティングの実装方法がわかりません。

/pro/contact にフォームを表示してもらいたいのですが、

uninitialized constant ProController::ProMessage

私のコントローラー:

# coding: utf-8
class ProController < ApplicationController
   def newpromessage
      @promessage = ProMessage.new
  end
  def contact
    @promessage = ProMessage.new(params[:message])
    @string = params[:receiver]
    if @promessage.valid?
      ProMailer.contact_us(@message, @string).deliver
      redirect_to(root_path, :notice => "Sent.")
    else
        redirect_to(root_path, :notice => "Error.")
    end
  end
end

私のルート:

match '/pro/contact' => 'pro#newpromessage', :via => :get
match '/pro/contact' => 'pro#contact', :via => :post
resources :promessages, only: [:newpromessage, :contact]
resources :promessage, only: [:newpromessage, :contact]

私の ActiveModel クラス:

class ProMessage

  include ActiveModel::Validations
  include ActiveModel::Conversion
  extend ActiveModel::Naming

  attr_accessor :name, :email, :body

  validates :name, :email, :body, :presence => true
  validates :email, :format => { :with => %r{.+@.+\..+} }, :allow_blank => true

  def initialize(attributes = {})
    attributes.each do |name, value|
      send("#{name}=", value)
    end
  end

  def persisted?
    false
  end
end

私のビューのヘッダーから:

<%= simple_form_for @promessage, :url => {:action => "contact"}, :method => "post" do |f| %>
4

1 に答える 1

0

ProMessageクラスがapp/models名前のディレクトリにあることを確認しますpro_message.rb

于 2013-08-22T21:55:26.327 に答える