2012-05-12 17 views
0

ちょうどそれを取得しない、私はチュートリアルに従っているし、それは私のために働いていない、誰かが私はこれを把握するのに役立つことができますか?ありがとう作成機能が動作しないのはなぜですか?

エラーは返されませんが、実際にはテーブルには何も挿入されません。私はこのコードを考えている

SQL

create_table "photos", :force => true do |t| 
    t.string "description" 
    t.string "content_type" 
    t.string "filename" 
    t.binary "binary_data" 
    end 

.RB

class Photo < ActiveRecord::Base 
    attr_accessible :photos, :photo, :description 
    attr_writer :photos, :photo, :description 
    def image_file=(input_data) 
    self.filename = input_data.original_filename 
    self.content_type = input_data.content_type.chomp 
    self.binary_data = input_data.read 
    end 
end 

コントローラ(部分的なコードは)それが自動生成された、間違っています。このチュートリアルでは、これを修正する必要があるとは言えませんでした。

def create 
    @photo = Photo.new(:photo => params[:photo]) 

    respond_to do |format| 
     if @photo.save 
     format.html { redirect_to @photo, notice: 'Photo was successfully created.' } 
     format.json { render json: @photo, status: :created, location: @photo } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @photo.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

ビュー

<%= form_tag ({:action => "create"}) %> 
    <%= file_field_tag "photo" %> 
    <%= submit_tag "Save" %> 
<%= form_tag %> 

答えて

0

問題は、あなたのビューにあるかもしれません。代わりにform_tag

<%= form_for @photo do |f| %> 
    <%= f.file_field :photo %> 
    <%= f.submit "Save" %> 
<% end %> 

form_tagのあなたの表記が間違っているユーザーform_forしてみてください。試してみてください

<%= form_tag({:action => "create"}) do %> 
    <%= file_field_tag "photo" %> 
    <%= submit_tag "Save" %> 
<% end %> 
+0

両方を試してみました。答えthoのおかげで! –

+0

画像をアップロードしたい場合は、この宝石http://bit.ly/a3MJgNとこのチュートリアルhttp://bit.ly/fGtvP3を見ることをお勧めします。それが有用であることを願っています。 – Suborx

関連する問題