0
我正在創建一個應用程序,您可以在其中查看世界上所有的會議。Ruby on Rails ||向用戶添加會議
我有什麼:
- 創建會議
- 顯示所有會議
現在我想創建是一個按鈕,它可以讓我的會議添加到用戶。
什麼我想用這個來完成:
- 加入會議的用戶
- 顯示加入會議在列表
- 觀看會議和添加內容
我在想的一個按鈕,用於複製所選對象的屬性並將其添加到選定用戶以供將來操作和查看會議
我問,如果有人能告訴我如何做到這一點
https://consulegem-salman15.c9users.io/conferences
遷移會議
class CreateConferences < ActiveRecord::Migration[5.0]
def change
create_table :conferences do |t|
t.string :conference
t.string :country
t.string :month
t.string :presence
t.string :audience
t.integer :cost
t.text :content
t.references :user, foreign_key: true
t.timestamps
end
add_index :conferences, [:user_id, :created_at]
end
end
控制器發佈會
class ConferencesController < ApplicationController
before_action :logged_in_user, only: [:create, :destroy]
before_action :correct_user, only: :destroy
before_action :admin_user, only: :destroy
def index
@conferences = Conference.paginate(page: params[:page])
if params[:search]
@conferences = Conference.search(params[:search]).order("created_at DESC").paginate(page: params[:page])
else
@conferences = Conference.all.order('created_at DESC').paginate(page: params[:page])
end
end
def new
@user = User.new
@conference = Conference.new
end
def create
@conference = current_user.conferences.build(conference_params)
if @conference.save
flash[:success] = "conference created!"
redirect_to conferences_path
else
@feed_items = current_user.feed.paginate(page: params[:page])
render 'new'
end
end
def destroy
@conference.destroy
flash[:success] = "conference deleted"
redirect_to request.referrer || root_url
end
private
def conference_params
params.require(:conference).permit(:conference,:country , :month, :presence, :audience, :cost ,:picture)
end
# Confirms an admin user.
def admin_user
redirect_to(root_url) unless current_user.admin?
end
def correct_user
@conference = current_user.conferences.find_by(id: params[:id])
redirect_to root_url if @conference.nil?
end
end
模型控制器
class Conference < ApplicationRecord
belongs_to:user
default_scope -> { order(created_at: :desc) }
mount_uploader :picture, PictureUploader
validates :user_id, presence: true
validates :conference, presence: true, length: { maximum: 140 }
validate :picture_size
scope :conference, -> (conference) { where conference: conference }
def self.search(search)
where("conference LIKE ? OR country LIKE ? OR month LIKE ?", "%#{search}%", "%#{search}%", "%#{search}%")
end
private
# Validates the size of an uploaded picture.
def picture_size
if picture.size > 5.megabytes
errors.add(:picture, "should be less than 5MB")
end
end
end