Ruby on rails 4 如何在铁路邮递员接收机中使用强计数器4
我正在测试Rails4.2.1(Ruby 2.1.6)中使用Mailman gem接收电子邮件的功能。 接收电子邮件很好,但我无法将数据插入具有强参数的表中。 在这里,异常错误似乎是由错误引起的Ruby on rails 4 如何在铁路邮递员接收机中使用强计数器4,ruby-on-rails-4,Ruby On Rails 4,我正在测试Rails4.2.1(Ruby 2.1.6)中使用Mailman gem接收电子邮件的功能。 接收电子邮件很好,但我无法将数据插入具有强参数的表中。 在这里,异常错误似乎是由错误引起的 "...ERROR -- : private method `require' called for #<ActiveSupport::HashWithIndifferentAccess:..." 和用户_mailer.rb: class UserMailer < Application
"...ERROR -- : private method `require' called for
#<ActiveSupport::HashWithIndifferentAccess:..."
和用户_mailer.rb:
class UserMailer < ApplicationMailer
def receive(message)
end
end
消息\u rec.rb
class MessagesRec < ApplicationController
def receive(message, params)
puts "------------ #{message}"
params[:message] = {}
params[:message][:title] = message.subject
params[:message][:description] = message.text_part.body.decoded
puts "------------ #{params}"
@message = Message.new(params.require(:message).permit(:title, :description))
if @message.save
puts 'Message was successfully created.'
else
puts 'Message was lost.'
end
end
end
class MessagesRec
这个错误“NoMethodError:private method`require'called”是否意味着不能在此邮件处理中使用?
怎么可能呢?
先谢谢你
E, [2015-09-15T15:29:26.944316 #2316] ERROR -- : Error encountered processing message: #<Net::POPMail 1>
NoMethodError: private method `require' called for #<ActiveSupport::HashWithIndifferentAccess:0x4523cb8>
C:/Users/gworth-sny/Z_userfolder/rails/mailman_model/app/controllers/messages_rec.rb:10:in `receive'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/router.rb:58:in `route'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/message_processor.rb:23:in `block in process'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/middleware.rb:33:in `call'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/middleware.rb:33:in `block in run'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/middleware.rb:38:in `call'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/middleware.rb:38:in `run'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/message_processor.rb:22:in `process'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/receiver/pop3.rb:49:in `block in get_messages'
C:/Ruby21/lib/ruby/2.1.0/net/pop.rb:665:in `each'
C:/Ruby21/lib/ruby/2.1.0/net/pop.rb:665:in `each_mail'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/receiver/pop3.rb:47:in `get_messages'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/application.rb:140:in `block in polling_loop'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/application.rb:137:in `loop'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/application.rb:137:in `polling_loop'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/application.rb:87:in `run'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/mailman-0.7.3/lib/mailman/application.rb:15:in `run'
script/mailman_server.rb:19:in `<main>'
Mailman::Application.run do
to "%event%@sample.com", "MessagesRec#receive" do
begin
rescue Exception => e
Mailman.logger.error "Exception occurred while receiving message:n#{message}"
Mailman.logger.error [e, *e.backtrace].join("n")
end
end
end
class MessagesRec < ApplicationController
def receive(message, params)
puts "------------ #{message}"
params[:message] = {}
params[:message][:title] = message.subject
params[:message][:description] = message.text_part.body.decoded
puts "------------ #{params}"
@message = Message.new(params.require(:message).permit(:title, :description))
if @message.save
puts 'Message was successfully created.'
else
puts 'Message was lost.'
end
end
end