gpt4 book ai didi

ruby-on-rails - 如何在 Draper gem 中使用 i18n 翻译方法?

转载 作者:行者123 更新时间:2023-12-04 21:54:04 30 4
gpt4 key购买 nike

我使用 Draper gem 来装饰我的模型。这里我有非常经典的设置:

# app/decorators/subject_decorator.rb
class SubjectDecorator < ApplicationDecorator
decorates :subject

def edit_link
h.link_to(h.t('.edit'), '#')
end
end

我使用 i18n 进行国际化。但是当我运行这个时,我得到:
Cannot use t(".edit") shortcut because path is not available

所以我想知道以前是否有人这样做过?它应该非常简单。

最佳答案

问题是你不能利用 lazy lookup在装饰器中,因为它们没有任何上下文来确定 View 文件级别(索引、显示、编辑等)。所以开箱即用,您只需要拼出整个内容,例如 t('subjects.show.edit')管他呢。

这是我最终为让它对我有用而做的事情。

class ApplicationDecorator < Draper::Base
def translate(key, options={})
if key.to_s[0] == '.'
key = model_class.to_s.downcase.pluralize + key
end

I18n.translate(key, options)
end
alias :t :translate
end

这不会让你得到完整的 subjects.show.edit引用,你只会得到 subjects.edit但对我来说似乎总比没有好。

关于ruby-on-rails - 如何在 Draper gem 中使用 i18n 翻译方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7819885/

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