У меня есть приложение, которое я создаю, у которого есть альбомы с изображениями. Я хочу, чтобы идентификатор изображения начинался с 1, когда они были добавлены в альбом. Однако, с моей текущей настройкой, они не сбрасываются для каждого альбома, но продолжают их нумерацию от одного альбома к другому.Сбросить первичный идентификатор для вложенных/дочерних ресурсов
Модели
class Album < ActiveRecord::Base
attr_accessible :title, :description, :album_id
has_many :images, :dependent => :destroy
validates :title, :description, :presence => true
end
class Image < ActiveRecord::Base
attr_accessible :title, :description, :picture, :image_id, :album_id, :albumcover
belongs_to :album
accepts_nested_attributes_for :album
mount_uploader :picture, PictureUploader
end
Controller Image
class Admin::ImagesController < ApplicationController
respond_to :html, :json
def index
@album = Album.find(params[:album_id])
@images = @album.images.all
end
def new
@album = Album.find(params[:album_id])
@image = @album.images.new(params[:id])
end
def create
@album = Album.find(params[:album_id])
@image = @album.images.new(params[:image])
if @image.save
flash[:notice] = "Successfully added image!"
redirect_to [:admin, @album, :images]
else
render :action => 'new'
end
end
def show
@album = Album.find(params[:album_id])
@image = @album.images.find(params[:id])
end
def edit
@album = Album.find(params[:album_id])
@image = @album.images.find(params[:id])
end
def update
@album = Album.find(params[:album_id])
@image = @album.images.find(params[:id])
if @image.update_attributes(params[:image])
flash[:notice] = "Successfully updated Image"
redirect_to [:admin, @album, :images]
else
render :action => "edit"
end
end
def destroy
@album = Album.find(params[:album_id])
@image = @album.images.find(params[:id])
@image.destroy
@albumid = @album.id
@id = @image.id
FileUtils.remove_dir("#{Rails.root}/public/uploads/image/picture/#{@albumid}/#{@id}", :force => true)
redirect_to admin_album_images_path(@album)
end
end
Как сделать начало нумерации на 1 в каждом альбоме?
Я хочу, чтобы идентификатор начинал заново в каждом альбоме в основном для заказа. Это та же идея для комментариев в блоге. Первый комментарий будет id 1, следующий - id 2 и т. Д. Это то, что я хочу для альбомов. В каждом из них первое изображение - id 1, второе - id 2 и т. Д. –
Если вы не хотите перегруппировать свои изображения, тогда я буду использовать предложение CubaLibre, а затем метод 'each_with_index' во время записи на экране. Старайтесь не загрязнять вашу базу данных ненужными данными. –