나는 이벤트 모델과 알림 모델을 가지고있다. 이벤트에는 많은 알림이 있고 알림에는 하나의 이벤트 만 있습니다. 내 알림 개체에는 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'
당신은 당신이 이벤트의 ID를 전달하려면 어떻게해야합니까 루트 – devanand