<?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>Shining Ray &#187; class</title>
	<atom:link href="http://shiningray.cn/tag/class/feed" rel="self" type="application/rss+xml" />
	<link>http://shiningray.cn</link>
	<description>一缕阳光</description>
	<lastBuildDate>Mon, 21 Jun 2010 07:11:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ruby的类成员作用域与self</title>
		<link>http://shiningray.cn/class-member-scope-and-self-in-ruby.html</link>
		<comments>http://shiningray.cn/class-member-scope-and-self-in-ruby.html#comments</comments>
		<pubDate>Tue, 17 Mar 2009 03:01:21 +0000</pubDate>
		<dc:creator>ShiningRay</dc:creator>
				<category><![CDATA[日记]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://shiningray.cn/?p=507</guid>
		<description><![CDATA[请考虑一下代码 class Test private def self.test puts 'arst' end def test puts 'arst' end class &#60;&#60; self def test2 puts 'arst' end private def test3 puts 'arst' end end end Test.test Test.test2 begin Test.test3 rescue StandardError =&#62; e p e end begin Test.new.test rescue StandardError =&#62; e p e end 结果为 arst arst #&#60;NoMethodError: private [...]]]></description>
			<content:encoded><![CDATA[<p>请考虑一下代码</p>
<pre><code>class Test
private
  def self.test
    puts 'arst'
  end
  def test
    puts 'arst'
  end
  class &lt;&lt; self
    def test2
      puts 'arst'
    end
    private
    def test3
      puts 'arst'
    end
  end
end

Test.test
Test.test2
begin
  Test.test3
rescue StandardError =&gt; e
  p e
end
begin
  Test.new.test
rescue StandardError =&gt; e
  p e
end
</code></pre>
<p>结果为</p>
<p><code>arst<br />
arst<br />
#&lt;NoMethodError: private method `test3' called for Test:Class&gt;<br />
#&lt;NoMethodError: private method `test' called for #&lt;Test:0x2c28060&gt;&gt;</code></p>
<p>类方法<code>Test.test</code>是不受作用域修饰符<code>private</code>影响的，可能原因在于<code>self.</code>的声明方式其实只是<code>class&lt;&lt;self</code>的语法糖。</p>
]]></content:encoded>
			<wfw:commentRss>http://shiningray.cn/class-member-scope-and-self-in-ruby.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rails错误LoadError Expected x.rb to define X</title>
		<link>http://shiningray.cn/rails-cuo-wu-loaderror-expected-xrb-to-define-x.html</link>
		<comments>http://shiningray.cn/rails-cuo-wu-loaderror-expected-xrb-to-define-x.html#comments</comments>
		<pubDate>Fri, 23 Nov 2007 14:26:50 +0000</pubDate>
		<dc:creator>ShiningRay</dc:creator>
				<category><![CDATA[备忘]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[require]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://shiningray.cn/2007/11/23/rails-cuo-wu-loaderror-expected-xrb-to-define-x/</guid>
		<description><![CDATA[今天将代码部署到服务器上之后出现了这个奇怪的错误，经过删除gems重装之后问题依旧，最后查找资料，发现可能是 require 和 class 之间的问题，最后在今天写的代码中发现了我在某个model的文件开头require了一个包。将require移入class定义内该问题解决。 原来代码如下： require 'faster_csv' class Character &#60; ActiveRecord::Base ... end 修改后： class Character &#60; ActiveRecord::Base require 'faster_csv' ... end 这个问题产生的原因我还不是非常清楚，难道和ruby的语法或者是内部运行机制和rails有冲突么？ 这个问题在Rails的BUG列表中依然存在争议，目前还没有被彻底解决 2007-12-11更新 今天在我更新了服务器后，服务器上又出现了这个问题，但这次换了一个文件，变成了account.rb。这台服务器上装的是CentOS3，而另外一台同步更新的Windows2003服务器，则没有出现这个情况。多次修改找不出原因也不能解决问题，最后通过重启服务器解决了问题…… 重新看了Rails Trac上的问题，发现情况并不是那么简单，很多条件可以造成这个错误，而问题的解决也是非常奇怪，比如有个人出现错误后，将某个设置从true改为了false，便正常了，然后他又把设置改回true，但是错误就没有了。]]></description>
			<content:encoded><![CDATA[<p>今天将代码部署到服务器上之后出现了这个奇怪的错误，经过删除gems重装之后问题依旧，最后查找资料，发现可能是 <code>require</code> 和 <code>class</code> 之间的问题，最后在今天写的代码中发现了我在某个<code>model</code>的文件开头<code>require</code>了一个包。将<code>require</code>移入class定义内该问题解决。<br />
原来代码如下：</p>
<pre class="code" lang="ruby">require 'faster_csv'
class Character &lt; ActiveRecord::Base
  ...
end</pre>
<p>修改后：</p>
<pre class="code" lang="ruby">class Character &lt; ActiveRecord::Base
  require 'faster_csv'
  ...
end</pre>
<p>这个问题产生的原因我还不是非常清楚，难道和ruby的语法或者是内部运行机制和rails有冲突么？<br />
这个问题在Rails的BUG列表中依然存在争议，目前还没有被彻底解决</p>
<hr />
<p><strong>2007-12-11更新</strong></p>
<p>今天在我更新了服务器后，服务器上又出现了这个问题，但这次换了一个文件，变成了account.rb。这台服务器上装的是CentOS3，而另外一台同步更新的Windows2003服务器，则没有出现这个情况。多次修改找不出原因也不能解决问题，最后<strong>通过重启服务器</strong>解决了问题……</p>
<p>重新看了<a href="http://dev.rubyonrails.org/ticket/7452">Rails Trac上的问题</a>，发现情况并不是那么简单，很多条件可以造成这个错误，而问题的解决也是非常奇怪，比如有个人出现错误后，将某个设置从true改为了false，便正常了，然后他又把设置改回true，但是错误就没有了。</p>
]]></content:encoded>
			<wfw:commentRss>http://shiningray.cn/rails-cuo-wu-loaderror-expected-xrb-to-define-x.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
