De que se trata o artigo: Neste artigo veremos como melhorar o desenvolvimento do nosso aplicativo conhecendo boas práticas de programação e compreendendo melhor o modelo MVC. Em seguida mostraremos como fazer uma busca e como utilizar a paginação de resultados, através de bibliotecas externas.

Para que serve: Adotar boas práticas de programação oferece ao desenvolvedor segurança de aproveitar ao máximo a ferramenta escolhida. Além disso, utilizar as bibliotecas que a ferramenta possui proporciona agilidade e facilidade de manutenção.

Em que situação o tema útil: A utilização das técnicas e ferramentas descritas no artigo dessa edição evita desperdícios de tempo e esforço, onde o desenvolvedor não precisará reinventar a roda a cada projeto.

Mini-curso de Ruby on Rails – Parte 5

Aperfeiçoando nosso controller, criando um método de busca e utilizando a paginação

Nos artigos anteriores, vimos como criar nossos posts e já temos o básico das tarefas CRUD (Create, Read, Update e Delete ou em português, criar, ler, atualizar e deletar). Vimos também como criar os comentários no nosso primeiro relacionamento entre tabelas. Vimos também como trabalhar com RSS, datas e os novos recursos de internacionalização do Rails – esse que ainda promete algumas mudanças no futuro. No artigo dessa edição veremos algumas boas práticas de programação, como criar um método para busca e como utilizar a paginação.

Controller magro, model gordo

O framework MVC divide o aplicativo em três camadas: model, view e controller. Como vimos no artigo inicial, o controller é responsável por processar eventos e invocar alterações no model, essa que é a camada que adiciona sentido a dados crus e responde pela lógica das informações, como por exemplo, calcular uma operação ou validar determinada informação. A view, da qual não resta dúvida, é a responsável por gerar a interface com o usuário e exibir as operações processadas pelo controller e modificadas pelo model. Não existem dúvidas que não devemos usar a view para processamento de código. O que muitos programadores confundem sobre regras de negócio é onde fazê-las. Usando Rails, provavelmente você dificilmente verá algo semelhante ao código da Listagem 1.

Listagem 1. Exemplo fictício de um método create


def create
    @post = Post.new(params[:post])

     if !@post.title
       flash[:notice] = "O título do post não pode ser vazio"
    elsif !@post.body
       flash[:notice] = "O texto do post não pode ser vazio"
    else
       if @post.save
          flash[:notice] = "Post criado com sucesso"
          redirect_to(@post)
       end
    end
end
    

No código da listagem (ler Nota 1), observe que o programador verifica, no controller, se os atributos title e body estão preenchidos; caso contrário, avisa que tais campos não podem ser vazios. Ora, validações são métodos de interpretação de dados e uma responsabilidade do model. O programador acima usou essa pseudo-validação dos dados no controller por pensar que é ali o primeiro lugar onde vão parar os dados do usuário, entretanto, é errado achar que o controller é responsável por esse tratamento de informações e que o ...

Quer ler esse conteúdo completo? Tenha acesso completo