2014-04-08 120 views
4

我需要上傳圖像到我的filme收集應用 我使用carrierwave做到這一點(follows the railscasts stepsCarrierWave文件上傳不在軌道

第1步我添加寶石「carrierwave」工作,「〜> 0.9」我的Gemfile然後運行束 步驟2導軌克載圖像然後導軌耙分貝 步驟3導軌克遷移add_image_to_filmes圖像後克支架filmes名稱moviestype:字符串,然後耙分貝

其它步驟是相同railscasts在

我的電影模式

attr_accessible :name, :moviestype, :image 
    mount_uploader :image, ImageUploader 

在我_form.html.erb

<%= form_for @filme, :html => {:multipart => true} do |f| %> 
    <% if @filme.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@filme.errors.count, "error") %> prohibited this filme from being saved:</h2> 

     <ul> 
     <% @filme.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :name %><br> 
    <%= f.text_field :name %> 
    </div> 
    <div class="field"> 
    <%= f.label :moviestype %><br> 
    <%= f.text_field :moviestype %> 
    </div> 
    <div class="field"> 
    <br> 
    <%= f.file_field :image %> 
    </div> 

    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

在show.html.erb

<p id="notice"><%= notice %></p> 

<p> 
    <strong>Name:</strong> 
    <%= @filme.name %> 
</p> 

<p> 
    <strong>Moviestype:</strong> 
    <%= @filme.moviestype %> 
</p> 
<%= image_tag @filme.image_url(:thumb) if @filme.image? %> 

<%= link_to 'Edit', edit_filme_path(@filme) %> | 
<%= link_to 'Back', filmes_path %> 

問題是,它沒有上傳任何圖片,但是電影名稱和其他字段插入db.how我可以解決這個問題嗎?需要快速幫助。

+0

請分享在提交表單生成的服務器日誌。 –

+0

https://www.dropbox.com/s/zxtoh9olabn4jzy/log.txt –

+0

你有沒有:圖片白名單?你的控制器裏有一個方法來指定可以上傳的內容嗎?可能看起來像這樣... params.require(:filme).permit(:name,:moviestype)...在這種情況下,您需要添加:image(和:image_cache,最終) – SteveTurczyn

回答

3

根據錯誤日誌,您不允許image保存在數據庫中。 在你FilmesController,你需要允許:image作爲

def filme_params 
    params.require(:filme).permit(:name, :moviestype, :image) ## Add :image attribute 
end 
+0

這是我的控制器https:/ /www.dropbox.com/s/ih54m4pk6y9vsfz/filmes_controller.rb –

+0

您錯過了:image屬性。看到我更新的答案。 –

+0

工作謝謝 –