如何解决在Rails中很难调用类方法有其他可以正常工作的类方法
因此,我试图编写一个类方法来使用邮件程序类发送csv文件。我认为我已经解决了所有逻辑,而我遇到的问题是NoMethodError。我已经在Order类中定义了该方法(见下文):
class Order < ApplicationRecord
def self.to_csv
attributes = %w{ id customer_name,customer_email,street_address,city,state,zip_code,number_books }
orders = Order.where(Date.today.all_day)
CSV.generate(headers: true) do |csv|
csv << attributes
orders.each do |order|
csv << attributes.map { |attr| order.send(attr) }
end
end
end
end
我只是试图在控制台中调用此方法,以查看它给我带来了什么样的输出。
我收到以下错误:
NoMethodError: undefined method `to_csv' for #<Class:0x00007fb7ef8a7560>
Did you mean? to_s
from /Users/mymac/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.2/lib/active_record/dynamic_matchers.rb:22:in `method_missing'
我也尝试编写任何类方法来完成一些简单的事情,例如在控制台上打印一个字,但我遇到了同样的错误。我已经重新启动了Rails服务器,但我认为我什至不必这样做?
任何帮助都是值得的。我已经做了一百万次而没有任何问题的事情让我非常沮丧。
解决方法
更改后,Rails通常会重新加载app/
和config/routes.rb
中的任何内容,但是在某些情况下,该类无法正确地重新加载,并且旧版本的缓存版本被卡住了。这通常是由Spring引起的,该{@ 3}试图保持最新状态,但有时会不同步。
通常的解决方法是:
spring stop
如果它给您带来很多麻烦,您也可以禁用它。 Rails的启动时间可能会较慢,但对您来说可能不是问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。