Tengo un método para traducir diferentes cadenas en la clase Producto del idioma inglés a otro. Tiene dos variables: cadena e idioma. Y para el primero, espero obtener el valor actual del área de texto. Aquí cómo se ve en JS:
var primary_value = document.getElementById('primary_body_html_value').getElementsByClassName('note-editable')[0].innerText;Y luego quiero usar este método dentro de la función JS:
var translated_string = "<%= GoogleTranslator.translate(primary_value, 'de') %>"La pregunta principal es ¿cómo se puede usar este 'primary_value' dentro de 'translated_string'? Como sé, puedo usar Ajax, pero soy un poco nuevo en esto y no entiendo cómo escribir correctamente un método para Ajax y para el controlador de Producto. En caso de que necesite un código de controlador:
class ProductsController < AuthenticatedController before_action :set_product, only: %i[show edit update] def index if params.include?('id') redirect_to edit_product_path(params[:id]) and return end end def edit redirect_to products_path, error: 'product not found' unless @product render :edit_polaris end def update if @product.update(product_params) render json: { status: :ok, notice: 'Saved successfully!' }, status: 200 else render json: { status: :error, error: 'Something Went Wrong' }, status: 400 end end private def product_params params.permit( :id, primary_locale: {}, locales: {} ) end def set_product @product = Product.find(product_params[:id]) end endEsto es solo un boceto, pero espero que pueda ayudarte. Puede estar dentro de uno de sus métodos de controlador existentes, por el bien del ejemplo, digamos que agregó una ruta (y un método de controlador) llamado translation_string a ProductsController.
#ProductsController def translated_string primary_value = params[:primary_value] @translated_string = GoogleTranslator.translate(primary_value, 'de') render json: {translated_string: @translated_string} endAhora, cuando algo sucede en su página DOM donde se establece el valor_principal, envía el valor_primario a través de ajax a la cadena_traducida y obtiene la respuesta json con la cadena traducida. Puede hacer lo que quiera con ella. Este es solo un ejemplo, hay un millón de formas de hacerlo, espero que esto te dé una dirección.