Pergunta

Em trilhos, não é recomendado o uso de formulário ajudantes? Internamente, tudo se resume a HTML simples, em seguida, por que não escrever o html diretamente? Desempenho será, obviamente, melhor, por escrito, html direto do que usando ajudantes. Está usando formulário ajudantes como uma convenção ou algo que os desenvolvedores Rails deve seguir?

Foi útil?

Solução

Definir desempenho. O seu desempenho ou as aplicações? Digamos que você tenha o mesmo RHTML trechos espalhados seus pontos de vista. Digamos que você tê-lo em milhares de lugares. Talvez você ainda não tê-lo começado exatamente o mesmo em todos os lugares. Agora seu cliente quer mudar isso (fim talvez diferente de apresentação ou algo assim). Vai levar um tempo para fazer isso em todos os pontos de vista, certo? E as chances são que você não vai acertar na primeira vez. As chances são de fato que você vai continuar recebendo relatórios de erros para os próximos anos em lugares que você perdeu a mudança.

O cliente vai acabar pagando muito para que ganhou "performance". Talvez centenas de horas de trabalho. Talvez dezenas de milhares se você evitar o princípio de DRY por princípio. Pense em todos os servidores e toda a RAM que ela pudesse comprar para aquelas horas de trabalho em vez disso. Se ela gastou tudo em hardware seu aplicativo pode executar cem dobras mais rápido. Pense em todas as coisas divertidas que você poderia estar trabalhando com em vez de macaquices mudando snippets HTML.

Outras dicas

Eu acho que os ajudantes de formulário é um reflexo da DRY (não repetir-se) princípio. Ao invés de escrever o mesmo código longo para fazer tarefas semelhantes, criando um assistente de formulário que lhe permite reutilizar esse código é o caminho a percorrer. Dessa forma, se você precisar fazer uma mudança ou correção, você só precisa fazê-lo em um lugar. Ela também ajuda a tornar o código mais compacto e legível para abstrair uma ação complexa em um assistente de formulário. O mesmo acontece com vistas parciais, embora vistas parciais tendem a encapsular marca mais complexo até que um assistente de formulário.

Os ajudantes de formulário são especialmente úteis para deixar trilhos manipular a criação de formulários com base em seu modelo. Para citar o exemplo da documentação da API:

O código a seguir

<% form_for :person, @person, :url => { :action => "create" } do |f| %>
  <%= f.text_field :first_name %>
  <%= f.text_field :last_name %>
  <%= submit_tag 'Create' %>
<% end %>

gera este html

<form action="/persons/create" method="post">
  <input id="person_first_name" name="person[first_name]" size="30" type="text" />
  <input id="person_last_name" name="person[last_name]" size="30" type="text" />
  <input name="commit" type="submit" value="Create" />
</form>

Você pode escrever o html por si mesmo, mas usando os ajudantes de formulário você tem que digitar menos e fazer a criação forma menos dependente da implementação trilhos. Você sempre consegue uma forma que grava dados em seu modelo quando você apertar o botão enviar. Se os desenvolvedores Rails nunca alterar a implementação deste, você começa automaticamente a saída de html correto de seus ajudantes. Se você tivesse escrito o html manualmente, você teria que atualizar tudo isso para refletir as alterações do funcionamento interno de trilhos.

Sua parece bom quando um desenvolvedor ter mesmo nome para a classe, id e nenhum valor para um campo de entrada se ele precisa diferentes ID nome e também dando valor, então ele tem que escrever <% = text_field_tag ??"nome",: valor => "valor",: id => "id",: class => "" class%> e para a mesma html pode ser . Agora acho que a sobrecarga 1 avaliar primeiro ajudante em html 2 agora também considerar comprimento do que em helper também tem que escrever:., => . 3 às vezes você se esqueça de usar: ou, por engano então eu acho que nós preferimos html, nesse caso, E uma coisa se o seu servidor recebendo lotes de pedido que ele irá ficou muito ocupado e o tempo de resposta vai ser maiores, devido <% =%> deve ter para executar

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