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

controller (コードの一部) このコードは間違っていると思います。自動生成されたものです。チュートリアルでは、これを変更する必要があるとは言いませんでした。

  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 %>
4

1 に答える 1

0

問題はあなたの見解にあるかもしれません。form_for代わりにユーザーを試してくださいform_tag

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

の表記もform_tag間違っています。これを試して

<%= form_tag({:action => "create"}) do %>
  <%= file_field_tag "photo" %>
  <%= submit_tag  "Save" %>
<% end %>
于 2012-05-12T10:59:38.397 に答える