В моем приложении у меня есть 2 модели Post
& PostTexts
.
Каждый Post
имеет language
, position
, title
& description
.
Позиции: Название и описание .
Коротко о моем заявлении, чтобы лучше понять .Пользователь входит и выбирает languages
& тексты, которые он хочет, и получит результаты различных текстов сообщений, которые он может использовать.
Например, пользователь выбирает:
- Заголовок 1 => должность: Заголовок
- Заголовок 2 => Должность: Заголовок
- Описание 1 => должность: Описание
Языки: Английский, Испанский
В настоящее время я создаю тексты по:
@languages = params[:languages].split(',')
@post_texts = params[:post_texts].split(',')
@post_texts.split(',').each do |id|
@languages.split(',').each do |language|
post_text = PostText.where(post_text_id: id)
@titles = post_text.where(placement: 'title')
@descriptions = banner_text.where(placement: 'description')
end
end
@titles.each do |title|
@descriptions.each do |description|
Post.create(
title: title.body,
description: description.body,
language: 'language here',
)
end
end
Это прекрасно работает, если я выбираю только 1 язык, и результат будет следующим:
Title 1 + Description 1
Title 2 + Description 1
Но когда я выбираю несколько языков, тексты смешиваются и испанские тексты смешиваются санглийский и наоборот.
Я хочу достичь, когда выбрано несколько языков, только английские тексты идут с английским, а испанский - с испанским и т. д.
, поэтому результат будет следующим:
English Title 1 + English Description 1
English Title 2 + English Description 1
Spanish Title 1 + Spanish Description 1
Spanish Title 2 + Spanish Description 1
Текущий результат: что-то , как показано ниже:
English Title 1 + English Description 1
English Title 1 + Spanish Description 1
Spanish Title 2 + Spanish Description 1
Spanish Title 2 + English Description 1
ps: Извините, если описаниеН не так хорошо
Я также проверил 2 разных способа, но результаты одинаковы:
1
@languages = params[:languages].split(',')
@post_texts = params[:post_texts].split(',')
@post_texts.split(',').each do |id|
post_text = PostText.where(post_text_id: id)
@titles = post_text.where(placement: 'title')
@descriptions = banner_text.where(placement: 'description')
end
@languages.split(',').sort { |a,b| a.lang <=> b.lang }.each do |lang|
@bodies = @titles.where(language: lang)
@ctas = @descriptions.where(language: lang)
end
@titles.each do |title|
@descriptions.each do |description|
Post.create(
title: title.body,
description: description.body,
language: 'language here',
)
end
end
2
@languages = params[:languages].split(',')
@post_texts = params[:post_texts].split(',')
@post_texts.split(',').each do |id|
post_text = PostText.where(post_text_id: id)
@titles = post_text.where(placement: 'title')
@descriptions = banner_text.where(placement: 'description')
end
@languages.split(',').map { |lang|
@bodies = @titles.where(language: lang)
@ctas = @descriptions.where(language: lang)
end
@titles.each do |title|
@descriptions.each do |description|
Post.create(
title: title.body,
description: description.body,
language: 'language here',
)
end
end
Любая помощь приветствуется и спасибо заранее!