Ruby on rails Rails如何实现产品模型和描述
我想在rails中创建一个类似商店的应用程序,其中包含产品。 这些产品有多种语言的描述 我不确定实现它的“最佳”方式是什么 我应该创建两个模型(产品和产品描述) 还是把它们放在一个模型中 有没有人体验过什么是好的、干净的方法 更新: 我不知道这是否是一个好的解决方案,但它是有效的 在产品型号中:Ruby on rails Rails如何实现产品模型和描述,ruby-on-rails,model,Ruby On Rails,Model,我想在rails中创建一个类似商店的应用程序,其中包含产品。 这些产品有多种语言的描述 我不确定实现它的“最佳”方式是什么 我应该创建两个模型(产品和产品描述) 还是把它们放在一个模型中 有没有人体验过什么是好的、干净的方法 更新: 我不知道这是否是一个好的解决方案,但它是有效的 在产品型号中: def self.set_language(language) @@language = language end def title read_attribute("title_
def self.set_language(language)
@@language = language
end
def title
read_attribute("title_#{@@language}")
end
在应用程序中(u controller)
before_filter :set_language
private
def set_language
Product.set_language('en')
end
您需要研究i18n(国际化) 查看有关它的指南
def show
@product = Product.find(params[:id])
@locale = params[:locale]
end
在你看来:
<p>
<%= @product.send("description_#{@locale}") %>
</p>
如何设置语言环境参数?我建议你阅读这一节。
希望它能帮助你 说明应该在管理后端可编辑,所以它需要存储在数据库中。不确定这是否可行!你可能是想谢谢你的纠正Sanghi,那是我的错。修好了!谢谢,但是是否可以覆盖模型中的“正常”描述属性。因此,当我调用@product.description时,将加载来自匹配区域设置的描述(如上面的示例)?是的,您可以覆盖模型中的“description”方法。但我不知道如何检查模型中的参数[:locale]。我只能在控制器中获取它。但我认为在这个模型中一定有办法做到这一点。谢谢你们的帮助,它现在可以工作了。我用我的解决方案更新了答案。