Ruby on Rails 4 とGlobalize gem を使用しています。
アプリケーションのフォームから複数の翻訳を送信すると、特定のロケールの翻訳がテーブルに既に存在する場合でも、Globalize は翻訳データベース テーブルに各ロケールの新しいレコードを作成します。
ロケールごとに 1 つの翻訳を行いたいので、フォームが送信されると、まだ存在しない場合にのみ新しい翻訳レコードが作成されます。それ以外の場合は、送信データで更新する必要があります。
どうやってやるの?
Ruby on Rails 4 とGlobalize gem を使用しています。
アプリケーションのフォームから複数の翻訳を送信すると、特定のロケールの翻訳がテーブルに既に存在する場合でも、Globalize は翻訳データベース テーブルに各ロケールの新しいレコードを作成します。
ロケールごとに 1 つの翻訳を行いたいので、フォームが送信されると、まだ存在しない場合にのみ新しい翻訳レコードが作成されます。それ以外の場合は、送信データで更新する必要があります。
どうやってやるの?
フォーム内のデータの形式に関する詳細情報がなければ、この質問に答えることは困難です。
にすべてのロケールがI18n.available_locales
あり、属性を更新していると仮定するとtitle
、次のようなものが機能します (レコードが と呼ばれると仮定post
):
I18n.available_locales.each do |locale|
post.translation_for(locale).title ||= ...
end
post.save!
詳しい情報を提供していただければ、より具体的なガイダンスを提供できます。