2014-01-20 4 views
0

나는 이벤트 모델과 알림 모델을 가지고있다. 이벤트에는 많은 알림이 있고 알림에는 하나의 이벤트 만 있습니다. 내 알림 개체에는 message와 event_id라는 두 가지 특성이 있습니다. 새 알림을 작성할 때 event_id를 현재 이벤트의 ID로 어떻게 설정할 수 있습니까?레일즈 컨트롤러에서 객체를 빌드 할 때 매개 변수를 전달하는 방법

events_controller.rb

class EventsController < ApplicationController 

before_action :signed_in, only: [:new,:create] 

def new 
    @event = Event.new 
end 

def create 
    @event = Event.new(event_params) 
    if @event.save 
     flash[:success] = "Your Event has been created." 
     redirect_to root_path 
    else 
     render 'new' 
    end 
end 

def show 
    @event = Event.find(params[:id]) 
    @notification = @event.notifications.build 
    respond_to do |format| 
     format.html 
     format.xml { render :xml => @event } 
     format.json { render :json => @event } 
    end 
end 

private 

    def event_params 
     params.require(:event).permit(:name, :description) 
    end 

    def signed_in 
     unless user_signed_in? 
      redirect_to new_user_session_path 
      flash[:warning] = "You must be signed in to access that page" 
     end 
    end 
end 

routes.rb

class NotificationsController < ApplicationController 

def create 
    @notification = Notification.new(notification_params) 
    if @notification.save 
     redirect_to root_path 
     flash[:success] = "Your message has been sent" 
    else 
     render 'new' 
    end 
end 

def show 
end 

private 

    def notification_params 
     params.require(:notification).permit(:message, :event_id) 
    end 

    def signed_in 
     unless user_signed_in? 
      redirect_to new_user_session_path 
      flash[:warning] = "You must be signed in to access that page" 
     end 
    end 
end 

notifications_controller.rb

devise_for :users 
resources :events 
resources :notifications 
root 'static_pages#home' 
match '/help', to: 'static_pages#help', via: 'get' 
match '/about', to: 'static_pages#about', via: 'get' 
match '/contact', to: 'static_pages#contact', via: 'get' 
+0

당신은 당신이 이벤트의 ID를 전달하려면 어떻게해야합니까 루트 – devanand

답변

3
@notification = @event.build_notification(notification_params) 
+0

을 표시 할 수 있습니다 통지 wh 알림을 만드시겠습니까? –

+0

이렇게하면 이렇게 할 필요가 없습니다. 'Event' 객체 만 있으면됩니다. – depa

+0

#