Я работаю над проектом, в котором пользователи могут создавать события и подписываться на события других пользователей. Профиль показывает личную информацию слева и поток событий справа. Под профилем я хотел бы добавить ссылки, которые сортируют события по-разному (будущее, прошлое, пользователь, созданный и т. Д.) 1003 *
Я бы хотел сделать это, используя ajax звонки. У меня уже есть большинство областей, встроенных в модель событий, которую я хочу. Мне просто нужен способ изящно обновить фид. Извините, если я не очень хорошо это описываю. Я очень новичок на рельсах.
Вот соответствующий код. Модель события:
class Event < ApplicationRecord
# == Constants ============================================================
# == Attributes ===========================================================
# == Extensions ===========================================================
# == Relationships ========================================================
belongs_to :creator, class_name: 'User'
has_many :invitations, foreign_key: :attended_event_id
has_many :attendees, through: :invitations, source: :attendee
# == Validations ==========================================================
# == Scopes ===============================================================
scope :upcoming, -> { where("start_time >= ?", Time.now) }
scope :past, -> { where("start_time < ?", Time.now) }
scope :soonest_first, -> { order(:start_time) }
scope :most_recent_first, -> { order(start_time: :desc) }
# == Callbacks ============================================================
# == Class Methods ========================================================
# == Instance Methods =====================================================
end
Контроллер пользователя:
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.create(user_params)
if @user
redirect_to @user
else
render 'new'
end
end
def show
@user = User.find(params[:id])
#@events = @user.attended_events.paginate(page: params[:page], per_page: 10)
@upcoming_events = @user.events.upcoming.soonest_first
@past_events = @user.events.past.most_recent_first
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :username,
:email, :password, :password_confirmation)
end
end
Соответствующая часть обзора:
<div class="row">
<div class="col-lg-4">
<div class="sidebar">
<h3 class="sidebar-title"><%= @user.username%></h3>
<div class="sidebar-item categories">
<h4 class="sidebar-title">Events</h4>
<ul>
WHERE I WANT LINKS!!!
</ul>
</div><!-- End sidebar categories-->
</div><!-- End sidebar -->