Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

81
Visualizações
Render Form parcial de Ajax en rieles

Tengo un formulario como la imagen a continuación:

Formulario con parcial

Luego quiero representar este parcial desde la llamada ajax: from .js.erb . Pero no sé cómo pasar el objeto a f desde parcial. Vea la imagen a continuación:

¿Cómo puedo pasar el objeto a f:

archivo .js.erb

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Agregar :remote => true hace que el botón sea asíncrono (llamada Ajax).

index.html.erb

 <%= link_to "Add Journal", new_journal_path, remote: true, class: 'new_journal_button'%>

nuevo.js.erb

 $('.new_journal_button').after("<%= j render('form') %>"); $('.new_journal_button').hide();

Si desea enviar un formulario de forma asíncrona (llamada Ajax)

_formulario.html.erb

 <%= form_for(@journal, remote: true) do |f| %> <div class="field"> <%= f.label "journal" %><br> <%= f.text_field :title, placeholder: 'Journal', autofocus: true, 'data-behavior' => 'submit_on_enter' %> </div> <% end %>

Diarios_controlador.rb

 def index @journal = Journal.new @journals = Journal.all end def create @journal = Journal.new(journal_params) respond_to do |format| if @journal.save format.html { redirect_to @journal, notice: 'Journal was successfully created.' } format.js else format.html { render :new } end end end
over 4 years ago · Santiago Trujillo Relatório

0

Estuve pensando en cómo reemplazar parte del formulario (si eso es lo que estás haciendo) por un tiempo. Lo siguiente no es perfecto pero "funciona para mí".

Instanciamos el generador de formularios f en el controlador (en lugar de una vista) y representamos solo su parcial en una cadena. Luego escape y renderice js en la respuesta Ajax como de costumbre.

 def show respond_to do |format| format.js do helpers.form_for(@journal) do |f| out = render_to_string partial: 'journal_entry_transaction_fields', locals: {f: f} render js: %($('.journal-entry').html("#{helpers.j out}");) end end end end

Quizás la parte correspondiente de coffeescript que es compatible con Turbolinks y usa jQuery para enviar Ajax es similar a

 $(document).on 'change', '#something', (e) -> $.get url: "/path/to/your/controller/#{e.target.value}.js"
over 4 years ago · Santiago Trujillo Relatório

0

podría enviar el objeto @journal y luego usar fields_for @journal en parcial

.js.erb

 $('.journal-entry').html("<%= j render partial: 'journal_entry_transaction_fields', object: @journal %>");

.html.erb parcial

 <%= fields_for @journal do |f| %> ... code ..... <% end %>
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda