如何在生产环境中的 Rails 模型中运行动态代码

发布于 2024-10-12 09:10:22 字数 416 浏览 3 评论 0原文

我想向我的模型添加一个 get_options 方法。然而,据我了解,在生产环境中,模型只能运行一次。我需要在模型中使用 I18n,因此输出将根据用户选择的语言而变化。 我如何在生产中制作这样的东西?

class ListHourlyPay < ActiveRecord::Base
  def self.get_options
    ListHourlyPay.all.map(&:amount).index_by { |obj| I18n.t("activerecord.attributes.part_time.hourly_pay_options.#{obj}") }
  end
end

谢谢!

另外,我什至不确定这行不通 - 这只是我根据所听到的内容进行的怀疑。

I'd like to add a get_options method to my model. However, it is my understanding that in a production environment, models only get run once. I need to use I18n in my model, and so the output will change based on the language the user chose.
How do I make something like this work in production?

class ListHourlyPay < ActiveRecord::Base
  def self.get_options
    ListHourlyPay.all.map(&:amount).index_by { |obj| I18n.t("activerecord.attributes.part_time.hourly_pay_options.#{obj}") }
  end
end

Thanks!

p.s. I'm not even sure this doesn't work - it is just my suspicion based on what I've heard.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

世界等同你 2024-10-19 09:10:23

是的,模型运行一次,但方法被调用多次。任何时候调用 get_options 时,字符串都会被重新翻译 - 我不担心。

Yes, models are run once, but methods are called multiple times. Any time get_options is called, the string will be re-translated - I wouldn't worry.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文