2015-12-08 30 views
0

所以我有另一種獨特的問題...CarrierWave - 未定義的方法`IMAGE_URL」

我檢查這個TOPIC,它沒有工作......我的想法在這個階段...

因此,我添加了圖片上傳文章,然後我試圖將其與內容一起顯示。

Screenshot with Error

Upload Screenshot

我真的不明白爲什麼這個代碼不工作...我是不是忘了什麼事?

show.html.erb

<% provide(:title, @user.name) %> 
    <div class="container"> 
    <div id="content-move"> 
     <div class="row"> 
     <aside class="col-md-4"> 
      <section class="user_info"> 
      <h1> 
       <%= gravatar_for @user %> 
       <%= @user.name %> 
      </h1> 
      </section> 
     </aside> 
     <div class="col-md-8"> 
      <% if @user.microposts.any? %> 
      <h3>User Posts (<%= @user.microposts.count %>)</h3> 
      <div> 
       <%= image_tag @microposts.image_url.to_s if @microposts.image_url.present? %> 
      </div> 
      <ol class="microposts"> 
       <%= render @microposts %> 
      </ol> 
      <% end %> 
     </div> 
     </div> 

_micropost_form.html.erb

<%= form_for(Micropost.new) do |f| %> 
     <%= render 'shared/error_messages', object: f.object %> 
     <div class="field"> 
     <%= f.text_area :content, placeholder: "Compose new micropost..." %> 
     </div> 
     <div> 
     <%= f.file_field :image %> 
     </div> 
     <%= f.submit "Post", class: "btn btn-primary" %> 
    <% end %> 

micropost.rb

class Micropost < ActiveRecord::Base 
     belongs_to :user # Association with User 
     has_many :comments 

     mount_uploader :image, ImageUploader 

     validates :user_id, presence: true 
     validates :posttitle, presence: true, length: { maximum: 100 } 
     validates :content, presence: true, length: { maximum: 500 } 
     validates :posttitle, presence: true, length: { maximum: 140 } 

     default_scope -> { order(created_at: :desc) } 
    end 

回答

1

在這一行:

<%= image_tag @microposts.image_url.to_s if @microposts.image_url.present? %> 

@microposts是記錄集合,而不是單個微博記錄。您可以顯示所有圖像:

<% @microposts.each do |mp| %> 
    <%= image_tag mp.image_url.to_s if @mp.image_url.present? %> 
<% end %> 

或第一微柱的顯示圖像:

<%= image_tag @microposts.first.image_url.to_s if @microposts.first.image_url.present? %> 

然而似乎是應該內部移動您的_micropost.html.erb部分(render @microposts),在那裏你可以在它所屬的帖子旁邊顯示圖片。

+0

我想顯示帶有圖片旁邊的帖子。就像你在最後一句中所說的那樣。我如何在代碼中使用render @microposts? – Fresz

+0

@Fresz - 你已經擁有了代碼。此行將循環播放您的收藏集,爲每個項目呈現'microposts/_micropost'模板。所以如果你想在每篇文章中添加一個圖片,你需要在該部分中進行。 – BroiSatse

+0

好吧,當我閱讀它時,它是有道理的 - 但是當我回到代碼...不知道如何解決這個問題。我應該把image_tag渲染? – Fresz

相關問題