JavaFree.org | RubyOnBr.org

Repeticoes de ifs

Acompanhar Repeticoes de ifs 5 posts, 4 participantes

Avatar Felipe Elias... 2 posts

Pessoal,

Alguem tem alguma idéia para diminuir este código?(retirar a montoeira de ifs)

Sei que existe o método link_to_unless_current, mas acho que nao se encaixaria, porque eu tenho que colocar o ID do item da lista como “current” para a pagina atual.

e sim… eu estava tentando fazer um blog…:P

 
Tapa Tapajós 32 posts

Bem Felipe, vamos por partes.
Primeiro eu acho que você poderia usar um helper para não poluir tanto a vista e principalmente, para você poder fazer testes unitários desse código.

Para melhorar is ifs você pode usar um case

 
Avatar_h Shairon Toledo 1247 posts

Pode-se fazer um método no ApplicationHelper com a lógica de detecção da página corrente, tipo esse aqui

E na view usar assim, passando o key/value :only

 
Avatar Daniel Libanori 196 posts

Felipe,

Eu acho errado o ID ficar “migrando” de tag.

Eu faria uma classe para ul e mudaria a classe do ul conforme o link ativo:

$ script/generate controller Foo bar

app/controllers/foo_controller.rb

app/views/foo/bar.html.erb

http://localhost:3000/foo/bar

http://localhost:3000/foo/bar?active=foo

http://localhost:3000/foo/bar?active=bar

http://localhost:3000/foo/bar?active=bop

 
Avatar Daniel Libanori 196 posts

E claro… pode-se usar helpers e etc

O básico que eu queria passar é que na minha opnião, isso é um problema de estrutura do CSS: ao invés de determinar o id de cada li (inclusive, você abre a possibilidade de criar dois li’s com mesmo id), eu mudaria a class do elemento pai, no caso, ul.