Posts Tagged ‘message’

Ruby on Rails ActiveRecord como excluir registros dependentes e arquivos anexados com o Paperclip

Postado em 10 jun 2009
Categoria(s) Ruby on Rails

Digamos que você tenha uma mensagem, e essa mensagem possa ter várias fotos e vídeos relacionadas com ela.

Com o model message.rb da forma abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Message < ActiveRecord::Base
  # associações
  belongs_to :user
  has_many :photos
  has_many :videos
 
  # validações
  # presença
  validates_presence_of :title
  validates_presence_of :content
 
  # tamanho máximo
  validates_length_of :title, :maximum => 255
end

Se você usar Paperclip para anexar as fotos e vídeos, quando você apagar uma mensagem os arquivos de fotos e vídeos iram continuar a existir no disco rígido.

Para forçar que todas as relações filhas sejam apagadas quando você excluir a mensagem, você deve adicionar :dependent => :destroy na declaração has_many, ficando assim:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Message < ActiveRecord::Base
  # associações
  belongs_to :user
  has_many :photos, :dependent => :destroy
  has_many :videos, :dependent => :destroy
 
  # validações
  # presença
  validates_presence_of :title
  validates_presence_of :content
 
  # tamanho máximo
  validates_length_of :title, :maximum => 255
end

Essa alteração força para que todos os dependentes sejam excluídos.

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark

Ruby on Rails debugando variáveis

Postado em 10 jun 2009
Categoria(s) Ruby on Rails

No Ruby existe o método debug, com ele você pode debugar uma variável e visualizar todos os parâmetros.

Exemplo:

1
2
3
4
5
...
<% if @drafts.size > 0 %>
  <% @drafts.each do |draft| %>
    <%= debug(draft) %>
...

Esse exemplo irá gerar a seguinte saída:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
--- !ruby/object:Message 
attributes: 
  step: "1"
  created_at: 2009-06-04 20:11:21
  title: Legal
  updated_at: 2009-06-10 18:25:51
  id: "1"
  user_id: "1"
  content: |-
    <p>Vamos testar</p>
    <p>Legal para carambaaa</p>
    <p>Vamos atualizar as informa&ccedil;&otilde;es.....</p>
  send_date: 
attributes_cache: {}

Essa é uma dica simples, mas que pode ajudar bastante.

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark

Pluralização de termos no symfony

Postado em 15 set 2008
Categoria(s) Symfony

Existe uma forma de fazer pluralização de temos no symfony.

Você deve usar o helper I18N e a função format_number_choice nos templates.

Por exemplo:

1
2
3
<?php use_helper("I18N") ?>
 
<?php echo format_number_choice('[0]Nobody is logged|[1]There is 1 person logged|(1,+Inf]There are %1% persons logged', array('%1%' => count_logged()), count_logged()) ?>

A função format_number_choice aceita os seguintes parâmetros:

1
format_number_choice($text, $args = array(), $number, $catalogue = &apos;messages&apos;)
  • Share/Bookmark