<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Patrick Espake &#187; registros</title>
	<atom:link href="http://blog.patrickespake.com/tag/registros/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.patrickespake.com</link>
	<description>O conhecimento evolui quando é compartilhado!</description>
	<lastBuildDate>Fri, 03 Sep 2010 04:24:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Ruby on Rails ActiveRecord como excluir registros dependentes e arquivos anexados com o Paperclip</title>
		<link>http://blog.patrickespake.com/2009/06/10/ruby-on-rails-activerecord-como-excluir-registros-dependentes-e-arquivos-anexados-com-o-paperclip/</link>
		<comments>http://blog.patrickespake.com/2009/06/10/ruby-on-rails-activerecord-como-excluir-registros-dependentes-e-arquivos-anexados-com-o-paperclip/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 21:25:43 +0000</pubDate>
		<dc:creator>patrickespake</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[:dependent]]></category>
		<category><![CDATA[:user]]></category>
		<category><![CDATA[active!]]></category>
		<category><![CDATA[activerecord]]></category>
		<category><![CDATA[anexo]]></category>
		<category><![CDATA[arquivos]]></category>
		<category><![CDATA[Base]]></category>
		<category><![CDATA[belongs_to]]></category>
		<category><![CDATA[dependentes]]></category>
		<category><![CDATA[destroy]]></category>
		<category><![CDATA[excluir]]></category>
		<category><![CDATA[exemplo]]></category>
		<category><![CDATA[filhas]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[has_many]]></category>
		<category><![CDATA[message]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[paperclip]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[record]]></category>
		<category><![CDATA[registros]]></category>
		<category><![CDATA[relacionados]]></category>
		<category><![CDATA[relações]]></category>
		<category><![CDATA[title]]></category>
		<category><![CDATA[validates_length_of]]></category>
		<category><![CDATA[validates_presence_of]]></category>
		<category><![CDATA[vídeos]]></category>

		<guid isPermaLink="false">http://blog.patrickespake.com/?p=708</guid>
		<description><![CDATA[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 &#60; ActiveRecord::Base # associações belongs_to :user has_many :photos has_many :videos &#160; # validações # [...]]]></description>
			<content:encoded><![CDATA[<p>Digamos que você tenha uma mensagem, e essa mensagem possa ter várias fotos e vídeos relacionadas com ela.</p>
<p>Com o model <strong>message.rb</strong> da forma abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> Message <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span>
  <span style="color:#008000; font-style:italic;"># associações</span>
  belongs_to <span style="color:#ff3333; font-weight:bold;">:user</span>
  has_many <span style="color:#ff3333; font-weight:bold;">:photos</span>
  has_many <span style="color:#ff3333; font-weight:bold;">:videos</span>
&nbsp;
  <span style="color:#008000; font-style:italic;"># validações</span>
  <span style="color:#008000; font-style:italic;"># presença</span>
  validates_presence_of <span style="color:#ff3333; font-weight:bold;">:title</span>
  validates_presence_of <span style="color:#ff3333; font-weight:bold;">:content</span>
&nbsp;
  <span style="color:#008000; font-style:italic;"># tamanho máximo</span>
  validates_length_of <span style="color:#ff3333; font-weight:bold;">:title</span>, <span style="color:#ff3333; font-weight:bold;">:maximum</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">255</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>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. </p>
<p>Para forçar que todas as relações filhas sejam apagadas quando você excluir a mensagem, você deve adicionar <strong>:dependent => :destroy</strong> na declaração <strong>has_many</strong>, ficando assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> Message <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span>
  <span style="color:#008000; font-style:italic;"># associações</span>
  belongs_to <span style="color:#ff3333; font-weight:bold;">:user</span>
  has_many <span style="color:#ff3333; font-weight:bold;">:photos</span>, <span style="color:#ff3333; font-weight:bold;">:dependent</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:destroy</span>
  has_many <span style="color:#ff3333; font-weight:bold;">:videos</span>, <span style="color:#ff3333; font-weight:bold;">:dependent</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:destroy</span>
&nbsp;
  <span style="color:#008000; font-style:italic;"># validações</span>
  <span style="color:#008000; font-style:italic;"># presença</span>
  validates_presence_of <span style="color:#ff3333; font-weight:bold;">:title</span>
  validates_presence_of <span style="color:#ff3333; font-weight:bold;">:content</span>
&nbsp;
  <span style="color:#008000; font-style:italic;"># tamanho máximo</span>
  validates_length_of <span style="color:#ff3333; font-weight:bold;">:title</span>, <span style="color:#ff3333; font-weight:bold;">:maximum</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">255</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>Essa alteração força para que todos os dependentes sejam excluídos.</p>
<p>Se você gostou desse texto e acha que ajudou você, me recomende: <a href="http://www.workingwithrails.com/recommendation/new/person/15479-patrick-espake"><img src="http://workingwithrails.com/images/tools/compact-small-button.jpg" alt="Recommend Me" /></a>.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.patrickespake.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.patrickespake.com/2009/06/10/ruby-on-rails-activerecord-como-excluir-registros-dependentes-e-arquivos-anexados-com-o-paperclip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails selecionando registros randomicamente (Random)</title>
		<link>http://blog.patrickespake.com/2009/01/24/ruby-on-rails-selecionando-registros-randomicamente-random/</link>
		<comments>http://blog.patrickespake.com/2009/01/24/ruby-on-rails-selecionando-registros-randomicamente-random/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 01:20:17 +0000</pubDate>
		<dc:creator>patrickespake</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[all]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[banner]]></category>
		<category><![CDATA[conditions]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[count]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[first]]></category>
		<category><![CDATA[how to select random records]]></category>
		<category><![CDATA[is true]]></category>
		<category><![CDATA[is_active]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[offset]]></category>
		<category><![CDATA[order by]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rand]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[randomicamente]]></category>
		<category><![CDATA[records]]></category>
		<category><![CDATA[registros]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[selecionando]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://patrickespake.wordpress.com/?p=370</guid>
		<description><![CDATA[Digamos que você queira exibir banners aleatórios na home da sua aplicação, você poderia fazer algo assim: 1 2 3 4 5 6 7 8 class HomeController &#60; ApplicationController &#160; def index offset = rand&#40;Banner.count&#40;:all, :conditions =&#62; &#34;is_active IS TRUE&#34;&#41;&#41; @banner = Banner.find :first, :conditions =&#62; &#34;is_active IS TRUE&#34;, :offset =&#62; offset end &#160; end [...]]]></description>
			<content:encoded><![CDATA[<p>Digamos que você queira exibir banners aleatórios na home da sua aplicação, você poderia fazer algo assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> HomeController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> index
    offset = <span style="color:#CC0066; font-weight:bold;">rand</span><span style="color:#006600; font-weight:bold;">&#40;</span>Banner.<span style="color:#9900CC;">count</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:all</span>, <span style="color:#ff3333; font-weight:bold;">:conditions</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;is_active IS TRUE&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#0066ff; font-weight:bold;">@banner</span> = Banner.<span style="color:#9900CC;">find</span> <span style="color:#ff3333; font-weight:bold;">:first</span>, <span style="color:#ff3333; font-weight:bold;">:conditions</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;is_active IS TRUE&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:offset</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> offset
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>Acredito que dessa forma funcione em todos os banco de dados.</p>
<p>Existe outras formas de seleção randômica de registros através de order by, mas isso muda de banco de dados para banco de dados, para enteder mais leia: <a href="http://wiki.rubyonrails.org/rails/pages/HowtoSelectRandomRecords">http://wiki.rubyonrails.org/rails/pages/HowtoSelectRandomRecords</a>.</p>
<p>Se você gostou desse texto e acha que ajudou você, me recomende: <a href="http://www.workingwithrails.com/recommendation/new/person/15479-patrick-espake"><img alt="Recommend Me" src="http://workingwithrails.com/images/tools/compact-small-button.jpg" /></a>.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.patrickespake.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.patrickespake.com/2009/01/24/ruby-on-rails-selecionando-registros-randomicamente-random/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
