Concatenar Selectbox com TextField

1. Concatenar Selectbox com TextField

Thiago
gremal

(usa Debian)

Enviado em 29/05/2009 - 11:53h

Ola pessoal,

sou novo em metodologia de programação em MVC e muito mais em Ruby on Rails. Preciso concatenar o TextField e o SelectBox dessa view:

<h1>Login</h1>
<%= form_tag :action =>"login" %>
<p>Digite seu usuário e senha para se logar no site</p>
<p> Login </p>
<%= text_field_tag :login, params[:email], :maxlength => 20 %>

@<%= select_tag( :login, options_for_select(@select_box)) %>

<p> Senha </p>
<%= password_field_tag :password,'', :maxlength => 10 %>

<p><%= submit_tag "Entrar" %> </p>

bem simples. O meu controller esta incompleto, pois necessito da resposta para termina-lo, ei o tal:

class LoginController < ApplicationController
def login
@select_box = ["agro.ufg.br","bc.ufg.br","cai.ufg.br","cegef.ufg.br","cegraf.ufg.br","cemeq.ufg.br","cepae.ufg.br","cercomp.ufg.br","cienciassociais.ufg.br","cpad.ufg.br","cppd.ufg.br",
"cs.ufg.br","daa.ufg.br","ddrh.ufg.br","direito.ufg.br","dmp.ufg.br","dp.ufg.br","eec.ufg.br","facomb.ufg.br","fanut.ufg.br","farmacia.ufg.br","fav.ufg.br","fe.ufg.br",
"fef.ufg.br","fen.ufg.br","filosofia.ufg.br","fis.ufg.br","hc.ufg.br","historia.ufg.br","icb.ufg.br","iesa.ufg.br","if.ufg.br","iptsp.ufg.br","jatai.ufg.br","letras.ufg.br",
"mail.ciar.ufg.br","mail.inf.ufg.br","mat.ufg.br","medicina.ufg.br","museu.ufg.br","musica.ufg.br","necasa.ufg.br","odonto.ufg.br","pj.ufg.br","proad.ufg.br","procom.ufg.br",
"prodirh.ufg.br","proec.ufg.br","prograd.ufg.br","prppg.ufg.br","quimica.ufg.br","radio.ufg.br","reitoria.ufg.br","vet.ufg.br"]

if request.post?



@usuarios = Usuario.find_by_sql ["SELECT * FROM usuarios u WHERE (u.email = ?) AND (u.password = ? )", email, password]

if @usuarios
session[:usuario] = @usuarios.id
redirect_to :controller => "inicio", :action => "inicial"
end

else
flash[:notice] = "Invalid login and/or password."
end
end

ha mais dois metodos neste, que nao convem coloca-los aqui.

Percebam que o problema esta justamente nessa linha:

@usuarios = Usuario.find_by_sql ["SELECT * FROM usuarios u WHERE (u.email = ?) AND (u.password = ? )", email, password]

pois o primeiro interrogação nao deveria ser email, e sim a concatenação do TextField com o SelectBox. Consegui ser claro? Obrigado pessoal.


  


2. vai um exemplo !

Jose RF Junior
JuniorOsho

(usa Debian)

Enviado em 16/06/2009 - 16:47h

=========================================================
class UsuariosController < ApplicationController

def index
@usuarios = Usuario.find(:all)
end

def show
@usuario = Usuario.find(params[:id])
end
=======================================================
<h1>Usuários</h1>

<%= link_to "Cadastro", new_usuario_path %>

<ul id="usuarios">

<% @usuarios.each do |usuario| %>
<li>
<h2><%=link_to usuario.nome, usuario_path(usuario)%> [<%=link_to "editar", edit_usuario_path(usuario)%>]</h2>
<p>
<%=usuario.login%> - <%=usuario.email%>
</p>
</li>
<hr class="produto_separa">
<% end %>

</ul>
==============================================================
class CreateUsuarios < ActiveRecord::Migration
def self.up
create_table :usuarios do |t|
t.string :nome
t.string :email
t.string :login
t.string :senha

t.timestamps
end
end

def self.down
drop_table :usuarios
end
end
====================================================

def new
@usuario = Usuario.new
end

def edit
@usuario = Usuario.find(params[:id])
end

def create
@usuario = Usuario.create(params[:usuario])
if @usuario.save
flash[:mensagem] = "Cadastro concluído com sucesso"
redirect_to usuario_path(@usuario)
else
render :action => "new"
end
end

def update
@usuario = Usuario.find(params[:id])
@usuario.attributes = params[:usuario]
if @usuario.save
flash[:mensagem] = "Dados alterados com sucesso"
redirect_to usuario_path(@usuario)
else
render :action => "edit"
end
end

def destroy
@usuario = Usuario.find(params[:id])
if @usuario.destroy
flash[:mensagem] = "O usuário foi removido"
redirect_to usuarios_path
end
end

end
========================================================
class Usuario < ActiveRecord::Base
validates_presence_of :nome
validates_presence_of :email
validates_presence_of :login
validates_presence_of :senha
end
========================================================
class UsuariosController < ApplicationController

def index
@usuarios = Usuario.find(:all)
end

def show
@usuario = Usuario.find(params[:id])
end

def new
@usuario = Usuario.new
end

def edit
@usuario = Usuario.find(params[:id])
end

def create
@usuario = Usuario.create(params[:usuario])
if @usuario.save
flash[:mensagem] = "Cadastro concluído com sucesso"
redirect_to usuario_path(@usuario)
else
render :action => "new"
end
end

def update
@usuario = Usuario.find(params[:id])
@usuario.attributes = params[:usuario]
if @usuario.save
flash[:mensagem] = "Dados alterados com sucesso"
redirect_to usuario_path(@usuario)
else
render :action => "edit"
end
end

def destroy
@usuario = Usuario.find(params[:id])
if @usuario.destroy
flash[:mensagem] = "O usuário foi removido"
redirect_to usuarios_path
end
end

end
==============================================================






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts