2014-10-02 25 views
-1

我安裝寶石‘曲別針’和railscasts.Image用它作爲顯示出現在頁面上‘秀’,但在網頁‘指數’告訴我錯誤:未定義的方法`形象」爲#<::條4 ActiveRecord_Relation.Rails

undefined method `image' for #<Article::ActiveRecord_Relation:0x007fbab4814310> 

這是我的index.html.erb

<% @article.each do |article| %> 
     <div class="main-page-blocks"> 
     <%= image_tag @article.image.url(:small) %> 
     <h3><%= article.title %></h3> 
     <div class="main-page-articles"><%= article.body %></div> 
     </div> 
    <% end %> 

這是我的模型article.rb

class Article < ActiveRecord::Base 
    has_attached_file :image, :styles => { :small => "150x150"} 
    validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"] 
end 

在哪裏錯誤?

+0

你有沒有做過具體的回形針遷移? la'rails生成回形針文章圖像'。 – 2014-10-02 17:54:01

+0

是的,這裏有http://pastie.org/9614395 – 138weare 2014-10-02 17:56:55

回答

3

這裏是哪裏出了問題:

<%= image_tag @article.image.url(:small) %> 

你在@article調用image時,它應該只是article這是在each塊定義的實例變量。

更新如下:

<% @article.each do |article| %> 
    <div class="main-page-blocks"> 
     <%= image_tag article.image.url(:small) %> 
     <h3><%= article.title %></h3> 
     <div class="main-page-articles"><%= article.body %></div> 
    </div> 
<% end %> 
+0

那麼爲什麼在這裏工作? http://pastie.org/9614410 – 138weare 2014-10-02 18:02:56

+0

我不知道你是如何在你的pastie定義'@ article'。在這個問題上你的'@ article'是Active Record的關係不是Article'的'一個實例。在你pastie,'@ article'必須Article'的'一個實例。 – vee 2014-10-02 18:05:04