Öncelikle herkese iyi forumlar.
Active Storage
kullanarak User
modelime bir video
kısmı tanımladım ve bu kısmın kullanıcı oluştururken boş kalmasını sağladım(video kısmı sonra kullanıcı tarafından sağlanacağı için).
Sonra bu video kısmını sağlamak için gerekli işlemleri yaptım fakat başarılı olamadım yardımcı olurmusunuz ?
User.rb
:
class User < ApplicationRecord
has_one_attached :video
end
users_controller.rb
:
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(params.require(:user).permit(:username,:password,:video))
@user.id = User.last ? User.last.id + 1 : 1
if @user.save
redirect_to(user_path(@user.id))
else
render :new
end
end
def show
@user = User.find(params[:id])
end
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
@user.video.purge
@user.video.attach(params[:video])
redirect_to("/")
end
end
edit.html.erb
ve new.html.erb
:
<%= form_for @user do |form|%>
<div>
<%= form.label :username%>
<%= form.text_field :username%>
</div>
<div>
<%= form.label :password%>
<%= form.text_field :password%>
</div>
<div>
<%= form.label :video%>
<%= form.file_field :video%>
</div>
<%= form.submit :Onayla%>
<%end%>
Kullanıcı sınıfı için migration dosyası:
class CreateUsers < ActiveRecord::Migration[7.0]
def change
create_table :users do |t|
t.string :username
t.string :password
t.timestamps
end
end
end
Active Storage migration dosyası:
# This migration comes from active_storage (originally 20170806125915)
class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
def change
# Use Active Record's configured type for primary and foreign keys
primary_key_type, foreign_key_type = primary_and_foreign_key_types
create_table :active_storage_blobs, id: primary_key_type do |t|
t.string :key, null: false
t.string :filename, null: false
t.string :content_type
t.text :metadata
t.string :service_name, null: false
t.bigint :byte_size, null: false
t.string :checksum
if connection.supports_datetime_with_precision?
t.datetime :created_at, precision: 6, null: false
else
t.datetime :created_at, null: false
end
t.index [ :key ], unique: true
end
create_table :active_storage_attachments, id: primary_key_type do |t|
t.string :name, null: false
t.references :record, null: false, polymorphic: true, index: false, type: foreign_key_type
t.references :blob, null: false, type: foreign_key_type
if connection.supports_datetime_with_precision?
t.datetime :created_at, precision: 6, null: false
else
t.datetime :created_at, null: false
end
t.index [ :record_type, :record_id, :name, :blob_id ], name: :index_active_storage_attachments_uniqueness, unique: true
t.foreign_key :active_storage_blobs, column: :blob_id
end
create_table :active_storage_variant_records, id: primary_key_type do |t|
t.belongs_to :blob, null: false, index: false, type: foreign_key_type
t.string :variation_digest, null: false
t.index [ :blob_id, :variation_digest ], name: :index_active_storage_variant_records_uniqueness, unique: true
t.foreign_key :active_storage_blobs, column: :blob_id
end
end
private
def primary_and_foreign_key_types
config = Rails.configuration.generators
setting = config.options[config.orm][:primary_key_type]
primary_key_type = setting || :primary_key
foreign_key_type = setting || :bigint
[primary_key_type, foreign_key_type]
end
end
Şimdiden teşekkürler.