Bom, para me obrigar a postar tentarei manter coisas úteis que acabo aprendendo e que provavelmente daria pra viver sem saber(ou não?).
Imagine que queremos verificar a unicidade de um dado composto no ruby on rails.
id | nome | sobrenome
----|-----------|-------------------
1 | joao | de castro
2 | joao | de góes
Seria permitido o exemplo acima, mas não caso fosse:
id | nome | sobrenome
----|-----------|-------------------
1 | joao | de castro
2 | joao | de castro
Usando-se de:
validates_uniqueness_of :nome, :sobrenome
Estariamos criando uma restrição não somente para nome, mas também para sobrenome, não permitindo que se tenha dois joãos ou dois "da silva", o que não é bem o que queremos.
Para este fim, ao invés de criarmos uma validação customizada, podemos simplesmente utilizarmos:
validates_uniqueness_of :nome, :scope => [:sobrenome]
Caso queiramos criar um dado composto maior, é a mesma regra:
validates_uniqueness_of :coluna1, :scope => [:coluna2, :coluna3, :coluna4]
Espero que tenham algum proveito disso, até mais!
whilewhilewhile
sexta-feira, 8 de outubro de 2010
sábado, 26 de junho de 2010
New line no rails em text_area e derivados
Bom, no rails não encontrei -- provavelmente por falha minha -- um método de a apartir de uma entrada, na saída, temos um código em HTML gerado que trate os newlines.
Em application.rb:
helper_method :nl2br
def nl2br(s)
s.gsub(/\n/, '
')
end
Agora pode-se utilizar este método em todo o projeto, ele é uma cópia do tal nl2br do php.
Agora, no controller:
def create
@message = Message.new(params[:message])
@message.thread_id = (params[:id])
@message.text = nl2br @message.text
#mais código aqui...
end
Pronto.
Em application.rb:
helper_method :nl2br
def nl2br(s)
s.gsub(/\n/, '
')
end
Agora pode-se utilizar este método em todo o projeto, ele é uma cópia do tal nl2br do php.
Agora, no controller:
def create
@message = Message.new(params[:message])
@message.thread_id = (params[:id])
@message.text = nl2br @message.text
#mais código aqui...
end
Pronto.
Assinar:
Comentários (Atom)