2014-10-02 31 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