컨텍스트 : 자전거 대여용 Ruby on Rails 앱의 경우 gem을 사용하여 :description
다른 언어 로 입력을 처리하고 있습니다.
현재 상태 :description
특정 언어 로 저장할 수있는 로캘에 따라 세계화 구현이 작동했습니다 . 에 대한 입력 :description
은 전체 웹 페이지의 로캘을 기반으로 처리됩니다.
즉,이 페이지의 모든 내용이 :description
올바른 언어 로 저장 되려면 언어로 변경되어야 합니다.
또는 사용 가능한 모든 로캘을 표시 description
하고 각 로캘을 표시 할 수도 있습니다. 아래의 주석 처리 된 코드도 참조하십시오.
질문 : 사용자가 언어를 :description
하나만 선택한 다음 :description
전체 웹 페이지의 언어를 변경하지 않고 올바른 언어로 저장할 수있는 방법을 찾고 있습니다.
암호
형태
<div class="row">
<%# I18n.available_locales.each do |locale| %>
<!-- <h1><%#= locale %></h1> -->
<%= f.globalize_fields_for locale do |ff| %>
<div class="col-10">
<div class="form-group">
<label class="form-control-label text required" for="accommodation_category_description">Description</label>
<div><%= ff.text_area :description, :rows =>"5", :cols =>"30", class:"form-control is-valid text required" %></div>
</div>
</div>
<% end %>
<%# end %>
</div>
</div>
이니셜 라이저 /globalization.rb
module ActionView
module Helpers
class FormBuilder
#
# Helper that renders translations fields
# on a per-locale basis, so you can use them separately
# in the same form and still saving them all at once
# in the same request.
def globalize_fields_for(locale, *args, &proc)
raise ArgumentError, "Missing block" unless block_given?
@index = @index ? @index + 1 : 1
object_name = "#{@object_name}[translations_attributes][#{@index}]"
object = @object.translations.find_by_locale locale.to_s
@template.concat @template.hidden_field_tag("#{object_name}[id]", object ? object.id : "")
@template.concat @template.hidden_field_tag("#{object_name}[locale]", locale)
@template.fields_for(object_name, object, *args, &proc)
end
end
end
end