0

ユーザーとイベントとの関連付けをセットアップしました。関連付けを正しく設定し、Rails コンソールで user = User.find(1) user.events を使用して関連付けられたイベントを表示することをテストしました。私の質問は認証に関係しています。現在、サインインするとメインページに直接移動し、開いているすべてのイベント(管理ページなど)が表示されるログインがあります:

セッション コントローラー:

 def create
    if user = User.authenticate(params[:name], params[:password])
        session[:user_id] = user.id
        redirect_to events_url
    else
        redirect_to login_url, :alert => "Invalid user/password combination"
    end
  end

ログインを作成し、それをその人のすべてのイベントに関連付けたいと考えています。たとえば、従業員がイニシャル JM でログインすると、その人のイニシャルで開いているすべてのイベントがキューに表示されるようにします。以下は、適用できると思われる私のアプリケーションの他の部分です。

   class EventsController < ApplicationController
  # GET /events
  # GET /events.json
  def index
    @events = Event.order("events.initials ASC")
    @archived = CompleteEvent.order("complete_events.created_at ASC")


    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @events }
    end
  end

  # GET /events/1
  # GET /events/1.json
  def show
    @event = Event.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @event }
    end
  end

  # GET /events/new
  # GET /events/new.json
  def new
    @event = Event.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @event }
    end
  end

  # GET /events/1/edit
  def edit
    @event = Event.find(params[:id])
  end

  # POST /events
  # POST /events.json
  def create
    @event = Event.new(params[:event])

    respond_to do |format|
      if @event.save
        format.html { redirect_to @event, notice: 'Event was successfully created.' }
        format.json { render json: @event, status: :created, location: @event }
      else
        format.html { render action: "new" }
        format.json { render json: @event.errors, status: :unprocessable_entity }
      end
    end
  end

  # PUT /events/1
  # PUT /events/1.json
  def update
    @event = Event.find(params[:id])
      @complete = CompleteEvent.new(:initials => @event.initials, :name => @event.name, :event_name => @event.event_name, :complete => @event.complete, :event_description => @event.event_description, :comment => @event.comment)

    respond_to do |format|
      if @event.update_attributes(params[:event])
        if @event.complete == true
              @complete
              @complete.save
              @event.destroy
          format.html { redirect_to :controller => :events, :action => :index}
          format.json { head :no_content }
            elsif @event.complete == false          
          format.html { redirect_to :controller => :events, :action => :index}
          format.json { head :no_content }
            end
      end
    end
  end

  # DELETE /events/1
  # DELETE /events/1.json
  def destroy
    @event = Event.find(params[:id])
    @event.destroy

    respond_to do |format|
      format.html { redirect_to events_url }
      format.json { head :no_content }
    end
  end


end
4

0 に答える 0