gpt4 book ai didi

ruby-on-rails - Rails 3 - 未定义的方法 `delivery_handler='

转载 作者:行者123 更新时间:2023-12-03 16:00:36 25 4
gpt4 key购买 nike

我有交货问题。

我得到了这个错误:

NoMethodError in PagesController#send_message
undefined method `delivery_handler=' for #< Message:0x00000004db9648>

app/mailers/contact.rb:22:in `send_email'
app/controllers/pages_controller.rb:65:in `send_message'

无论如何,这是我的代码:

/views/pages/contact.html.erb
<h1><%= @page.title %></h1>
<%= @page.content.html_safe %>

<%= form_for @message, :url => "/pages/send_message" do |f| %>
<% if flash[:notice] %>
<% flash[:notice].full_messages.each do |msg| %>
<p><%= msg %></p>
<% end %>
<% end %>
<div class="field">
<%= f.label :email %>
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :body %>
<%= f.text_area :body %>
</div>
<%= f.submit "Envoyer" %>
<% end %>

/模型/消息.rb
     class Message
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming

attr_accessor :email, :body

validates :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

*/controllers/pages_controller.rb*
    def send_message
@message = Message.new(params[:message])

if @message.valid?
Contact.send_email(@message).deliver
redirect_to request.referer, :notice => "Le message a &eacute;t&eacute; envoy&eacute;."
else
redirect_to request.referer, :notice => "Vous n'avez pas entrer votre email."
end
end

/app/mailers/contact.rb
      class Contact < ActionMailer::Base
attr_accessor :email, :message

default to: "bla@bla.com"
default from: "blo@blo.com"

def send_email(message)
@message = message
mail(:subject => "Nouveau contact blo")
end
end

/config/environments/development.rb
    config.action_mailer.default_url_options = {
host: 'localhost:3000'
}
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :sendmail
config.action_mailer.sendmail_settings = {
location: '/usr/sbin/sendmail',
arguments: "-i -t -f contact@test.com"
}

最佳答案

在您的邮件中,删除 attr_accessor :message或者叫它别的东西。
ActionMailer::Base已经有一个消息访问器可以获取/设置 Mail::Message正在 build ,所以一些 rails 正在调用 message希望得到一个 Mail::Message但正在获取您的 Message 类。

关于ruby-on-rails - Rails 3 - 未定义的方法 `delivery_handler=',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14045981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com