Rails如何实现产品型号和描述

时间:2010-12-22 08:21:11

标签: ruby-on-rails model

我想在铁路上创建一个像应用程序一样的商店。 这些产品有多种语言的描述。

我不确定实现它的“最佳”方式是什么。

我应该创建2个型号(产品和产品描述) 或者把它们放在一个模型中?

有人体验到这可能是一个好的和干净的方式吗?

更新:

我不知道这是否是一个好的解决方案,但它确实有用。

产品型号中的

def self.set_language(language)
    @@language = language
end

def title    
  read_attribute("title_#{@@language}")
end
<_>在application_controller

before_filter :set_language

private

def set_language
    Product.set_language('en')
end

2 个答案:

答案 0 :(得分:2)

  1. 第一个选择,您可以使用I18n,但是当内容不变时更适用,例如网页上的标题和标签。

  2. 或者,您可以在products表中包含description_en,description_fr,description_jp等多个列,并在每个请求中附加params [:locale]。

  3. 例如,如果params [:locale] =='jp',您只需获取description_jp的内容,因此在您的控制器中,您可以这样写:

    def show
      @product = Product.find(params[:id])
      @locale = params[:locale]
    end
    

    并在您看来:

    <p>
     <%= @product.send("description_#{@locale}") %>
    </p>
    

    以及如何设置区域设置参数?我建议你阅读这一节。 http://edgeguides.rubyonrails.org/i18n.html#setting-the-locale-from-the-url-params

    希望它可以帮到你!

答案 1 :(得分:0)

你需要研究i18n(国际化)

查看相关指南here