Я использую рубин на рельсах, и у меня есть некоторые проблемы с ним!Рубин на рельсах - модель отсутствует Требуется attr_accessor для [RAILS]
Я попытался создать базу данных, но, похоже, не работает! я создал модель и файл базы данных, чтобы поблагодарить команду:
rails g model photos
А вот мои коды
photos_controller.rb:
class PhotosController < ApplicationController
# POST /photos
# POST /photos.json
def create
@photo = Photo.new(photo_params)
photo_controller.rb
respond_to do |format|
if @photo.save
format.html { redirect_to @photo, notice: 'Photo was successfully created.' }
format.json { render action: 'show', status: :created, location: @photo }
else
format.html { render action: 'new' }
format.json { render json: @photo.errors, status: :unprocessable_entity }
end
end
end
# Never trust parameters from the scary internet, only allow the white list through.
def photo_params
params.require(:photo).permit(:image)
end
end
в модели photo.rb:
class Photo < ActiveRecord::Base
has_attached_file :image
end
в файле 2011234116731_create_photos.rb:
class CreatePhotos < ActiveRecord::Migration
def self.up
add_column :photos, :image_file_name, :string
add_column :photos, :image_content_type, :string
add_column :photos, :image_file_size, :string
add_column :photos, :image_update_at, :string
end
def self.down
remove_column :photos, :image_file_name, :string
remove_column :photos, :image_content_type, :string
remove_column :photos, :image_file_size, :string
remove_column :photos, :image_update_at, :string
end
end
Но когда я пытаюсь загрузить страницу, которую используют элемент «образ» модели, я га следующее сообщение об ошибке:
Фото модель отсутствуют обязательные attr_accessor для 'image_file_name' извлеченного источника (около линии № 27):
POST /photos.json
def create @photo = Photo.new (photo_params) reply_to do | формат | если @ photo.save
Я заметил, что миграция, кажется, не работает, потому что в моем scheme.rb: (я сделал грабли БД: мигрировать команду)
ActiveRecord::Schema.define(version: 20131124183207) do
create_table "photos", force: true do |t|
t.datetime "created_at"
t.datetime "updated_at"
end
end
спасибо! Теперь это прекрасно! – Rabbit56
Нет проблем, не стесняйтесь отвечать на ответ :) – DiegoSalazar