2013-12-14 126 views
1

我無法管理使用回形針進行文件上傳。 我下面這個教程回形針文件無法上傳

http://larsgebhardt.de/parse-xml-with-ruby-on-rails-paperclip-and-nokogiri/

這是我做過什麼:

route.rb: 

    resources :users do 
    resources :rides do 
     resources :comments 
    end 
    resources :challenges do 
     get "accept" 
     post 'accept' 
    end 
    end 

... 

validates :gpx, presence: true 

rides.rb: 

    require 'nokogiri' 

    class Ride < ActiveRecord::Base 
     belongs_to :user 
     has_many :comments, dependent: :destroy 
     has_many :challenges 

     # Tracksegments 
     has_many :tracksegments, :dependent => :destroy 
     has_many :points, :through => :tracksegments 

     has_attached_file :gpx 

create_rides.rb 

    add_attachment :rides, :gpx 

rides/new.html.erb 

<h1>New Ride</h1> 

<%= form_for [@user,@ride] do |f| %> 
    <div> 
    <%= f.label :name, :class => 'control-label' %> 
    <div> 
     <%= f.text_field :name, :class => 'text_field' %> 
    </div> 
    </div> 

    <div> 
    <%= f.label :gpx, :class => 'control-label' %> 
    <div> 
     <%= f.file_field :gpx %> 
    </div> 
    </div> 

    <div> 
    <%= f.submit %> 
    </div> 
<% end %> 

<div> 
    <%= link_to 'Back', user_rides_path %> 
</div> 

一切呈現良好,但該文件沒有上傳。由於model.rb中的當前驗證集,頁面被卡住了。哪裏不對?

回答

1

在你的表單標籤

<%= form_for [@user,@ride], :html => { :multipart => true } do |f| %> 

試試這個,我知道回形針喜歡這個設置爲數據庫

def self.up 
    change_table :rides do |t| 
    t.attachment :gpx 
    end 
end 

def self.down 
    drop_attached_file :rides, :gpx 
end 

而且最後檢查你的遊戲機控制器,並確保:GPX是一個屬性。如果你使用的是Rails4,並且有一個默認配置,那麼Rides Controller的底部應該是你的ride_params,並且確保:gpx是允許的。

+0

:在我的控制器中不允許使用gpx –

+0

很高興您能夠正常工作! –