Olá a todos,
Estou fazendo um sistema de cadastro de protocolos. Cada protocolo possue 3 estados(protocolado,arquivado e baixado), na tabela criei um campo status do tipo int, e atribui status = 1 está protocolado, status = 2 está arquivado e status = 3 está baixado. No menu do sistema terá a opção de filtrar por status. Por exemplo, se clicar em exibir baixados, aparece a lista de baixados.
Aí que entra minha duvida, terei que criar uma view pra cada status ou existe uma maneira de fazer apenas uma view e ela exibir de acordo com o parametro passado.
Agradeço desde já, e desculpem se ficou muito confuso.
att, Romulo Storel
Ta utilizando que tecnologia?
Desktop? Web? Mobile?
Bom, em todas você pode filtrar e apresentar através da mesma saída, não precisa de um diferente para cada tipo de saída.
To utilizando rails. Tava pensando em passar um parametro para a view pelo link(não sei se isso é possivel) e fazer “ifs” dentro da view(também não sei se isso é possivel).
Por exemplo: ao clicar em “exibir baixados”, esse link envia um parametro pra view d exibição e na mesma faço o if: if parametro = 1{@protocolos = Protocolo.find_all_by_status("1)}
e assim por diante.
Não manjo de rails, mas, se você faz qualquer pesquisa, consegue mostrar no view, certo? Esses dados vem de algum lugar, certo? Passam por outros lugares, certo? Tua estrutura é MVC, essa parte de controlar o que a view vai exibir é do controller, portanto, trate ali os dados, antes de mandar pra tela.
Os links estão assim:
<%= link_to 'Despachados', :controller => "protocolos", :action => "relatorio", :relat => "1"%>
<%= link_to 'Recebidos', :controller => "protocolos", :action => "relatorio", :relat => "2"%>
na action protocolos/relatorio:
def relatorio
if :relat=="1"
@relatorios = Protocolo.find_all_by_status(1)
end
if :relat=="2"
@relatorios = Protocolo.find_all_by_status(2)
end
end
e na visão eu fiz:
para percorrer oque foi colhido.
Porém não está funcionando. Alguma luz?