2012-09-27 82 views
1

好吧,我想學習的Ruby/Rails(我把我的牙齒在1993年C++)未定義的方法3

誰能告訴我,爲什麼這樣的:

class FeedHolder 
    @rssfeed 
    @rss 

    #attr_accessor :rssfeed,:rss 

    def rssfeed 
     @rssfeed 
    end 

    def initialize(feed,rss) 
     @rssfeed,@rss = feed, rss 
    end 
end 

這是人口稠密這樣

@rssfeeds.each do |rssfeed| 
    @myrssurl=rssfeed.url.gsub(/'/,"") 
    @rss=Feedzirra::Feed.fetch_and_parse(@myrssurl) 
    @myfeedguy = FeedHolder.new(rssfeed,@rss) 
    @myrsslist.push(@myfeedguy) 

給了我這個錯誤

「未定義的方法`的RSSFeed」爲#FeedHolder:0xa0a8bec」

當我這樣做? 順便說一句,它不會抱怨對myfeedguy.rss的調用,即使它沒有getter 是的,我試過attr_accessor和其他一些東西。

<% @myrsslist.each do |myfeedguy| %> 
<% if(myfeedguy.rss == 0) then %> 
     "No feeds to show"</br> 
    <% else %> 
     <%=myfeedguy.rssfeed%> 

     </br> 
      <a href='' onclick='showfeed("")'>x</a> 
     </br> 
    <% end %> 
<%end%> 

提前 斯圖爾特

回答

0

THX好像你在正確的軌道上。這個例子有幫助嗎?

class FeedHolder 
    def initialize(feed,rss) 
    @rssfeed, @rss = feed, rss 
    end 
    attr_accessor :rssfeed,:rss 
end 

@rssfeeds = %w(a b c d) 
@myrsslist = [] 

def fetch_and_parse(rssurl) 
    "Imagine this was fetched and parsed from: #{rssurl}" 
end 

@rssfeeds.each do |rssfeed| 
    myrssurl = rssfeed.gsub(/'/,"") 
    rss = fetch_and_parse(myrssurl) 
    myfeedguy = FeedHolder.new(rssfeed, rss) 
    @myrsslist.push(myfeedguy) 
end 

require 'pp' 
pp @myrsslist 

輸出:

$ ruby tmp.rb 
[#<FeedHolder:0x00000001b00800 
    @rss="Imagine this was fetched and parsed from: a", 
    @rssfeed="a">, 
#<FeedHolder:0x00000001b00738 
    @rss="Imagine this was fetched and parsed from: b", 
    @rssfeed="b">, 
#<FeedHolder:0x00000001b00670 
    @rss="Imagine this was fetched and parsed from: c", 
    @rssfeed="c">, 
#<FeedHolder:0x00000001b005a8 
    @rss="Imagine this was fetched and parsed from: d", 
    @rssfeed="d">] 
+0

1.9.3p194:016> FH = FeedHolder.new( 「進料」, 「RSS」) =># 1.9.3p194:017> fh.rssfeed =>「feed」 – stuart

+0

當我初始化飼料持有人與字符串它的作用。但我使用的對象(雖然字符串也是一個對象,所以idunno) – stuart

+0

你可以舉一個'FeedHolder.new'的例子,你失敗了嗎? –