Pergunta

Como faço para anexar um evento onclick de um link_to_function tal que clicar sobre as atualizações de eventos um elemento na página (usando parciais)?

Quando o usuário clica no link gerado, eu gostaria de atualizar a parcial contendo o código para que i é atualizado.

 def add_step_link(form_builder)
    logger.info 'ADD_STEP_LINK'
    link_to_function 'add a step' do |page|
      form_builder.fields_for :steps, Step.new, :child_index => 'NEW_RECORD' do |f|
        logger.info 'inserted js'
        html = render(:partial => 'step', :locals => { :step_form => f, :i=>@i+=1})
        page << "$('steps').insert({ bottom: '#{escape_javascript(html)}'.replace(/NEW_RECORD/g, new Date().getTime()) });"
      end
    end
  end 

Eu tenho um parcial de uma forma maior, que contém apenas:

<%= add_step_link(technique_form) %>

Eu estou tentando manter o controle do número de passos em uma técnica. Na forma que estou criando, os usuários podem adicionar novos passos para um conjunto de instruções. Agora, eu tenho campos padrão para as etapas 1-7. Adicionando uma etapa, você recebe a etapa 8. O problema é que os passos subsequentes são numeradas '8', também.

Eu estou estendendo os "Múltiplos modelos da criança de forma dinâmica" tutorial em http: // railsforum.com/viewtopic.php?id=28447 para minhas próprias finalidades.

Foi útil?

Solução

Ok, eu estou um pouco confuso com o que você está fazendo, mas eu vou tentar e fazer algumas sugestões.

Ao invés de uso link_to_function , use link_to_remote . Link para chamadas de função javascript, mas o que você actally quer fazer é chamada de volta para um controlador que, em seguida, executa alguns RJS para substituir a plena parcial, ou, mais provavelmente, acrescentar o novo parcial (contendo o passo) para o fim de seu atual passos.

Este é semelhante a todos esses exemplos, você terá visto onde as pessoas acrescentar um comentário ao final de seus comentários do blog (esperar usando link_to_remote em vez de remote_form_for) ver 3/4 do caminho através de http://media.rubyonrails.org/video/rails_blog_2.mov

Você pode ver a documentação para link_to_remote aqui: http: // api. rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html

Outras dicas

Eu sugiro usar link_to_remote como RichH sugere. O truque para você parece que é manter o controle de @i. Eu quer colocá-lo como um parâmetro de URL em link_to_remote, ou no objeto de sessão. Eu sugiro a sessão-parece mais fácil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top