Ruby on rails 如何使用另一个类中的方法? class客户
控制器:Ruby on rails 如何使用另一个类中的方法? class客户,ruby-on-rails,ruby,Ruby On Rails,Ruby,控制器: class Customers < ActiveRecord::Base def check_user_name ... mailto = Emailer.new mailto.contact(email, subject='ask', question) end end class Emailer < ActionMailer::Base def contact(email, subject, question, sent_at =
class Customers < ActiveRecord::Base
def check_user_name
...
mailto = Emailer.new
mailto.contact(email, subject='ask', question)
end
end
class Emailer < ActionMailer::Base
def contact(email, subject, question, sent_at = Time.now)
...
end
end
class CustomerController
出现以下错误:
CustomerController中的Nomethoder错误#检查用户
您正在方法中传递参数,并且您在模型中定义的方法没有接受参数。您应该执行以下操作:
class CustomersController < ApplicationController
def ask
end
def check_user
cust = Customers.new
@answer = cust.check_user_name(params[:name], params[:email], params[:question])
end
end
class客户
希望以上内容能为您提供想法和帮助。控制器的代码在哪里?您的
联系人
方法是否公开?为什么要传递一些奇怪的参数,比如subject='ask'
?关于subject='ask'-这只是个例子。如何知道该方法是公共的?:)我把这个方法公开。现在为Emailer调用私有方法“new”时出错:ClassI认为您应该对cust.check\u user\u name方法有问题,因为它的定义不正确。请检查我的答案。仍然有错误:为Emailer调用了私有方法“new”:类无法创建Emailer的对象。您可以直接调用Mailer类的方法。请通过:RailsGuid->和RailsCast->确定。我运行这个命令:railsgeneratemailer UserMailer。然后在那里执行我的代码。并没有错误…一切正常…但邮件并没有发送…我想,tah是因为我尝试从本地服务器上对邮件进行沙粒处理。不,如果配置良好,您可以从本地服务器发送邮件。请通过火车站。
class Customers < ActiveRecord::Base
def check_user_name(name,email,question)
mailto = Emailer.new
mailto.contact(email, subject='ask', question)
end
end
class Emailer < ActionMailer::Base
def contact(email, subject, question, sent_at = Time.now)
end
end