-1
我有一個用例,我需要在單個表單提交中創建2個元組(一個在邀請函和一個在通知表中)(操作指向邀請#創建)。 如何從邀請中調用通知創建方法create在通知表中創建新元組。 PS:邀請和通知之間沒有關係。在單個表單提交中調用2個控件後臺方法
我有一個用例,我需要在單個表單提交中創建2個元組(一個在邀請函和一個在通知表中)(操作指向邀請#創建)。 如何從邀請中調用通知創建方法create在通知表中創建新元組。 PS:邀請和通知之間沒有關係。在單個表單提交中調用2個控件後臺方法
您不會去通知創建操作,您只需在邀請創建中執行此操作。下面的代碼將使用共同關心的問題的方法,解釋它下面:
class InvitationsController < ApplicationController
include Notifications
#....
def create
invitation = Invitiation.create(invitation_params)
create_notification(invitation)
end
private
def invitation_params
# strong params code
end
end
所以,如果你有一個第二控制器/模型,如RSVP:
class RsvpsController < ApplicationController
include Notifications
#....
def create
rsvp = Rsvp.create(rsvp_params)
create_notification(rsvp)
end
private
def rsvp_params
# strong params code
end
end
然後在控制器/顧慮目錄,你可以創建一個文件'notifications.rb'
module Notifications
extend ActiveSupport::Concern
def create_notification(object)
Notification.create(object_id: object.id, object_type: object_type)
end
end
謝謝你,是的,將用於多個控制器。所以,該創建方法將在通知控制器?我需要一條路線嗎?如果可能的話,你可以給我一個小片段。 – Jarvis
不,不會有第二條路線,表單將張貼到Invitations創建,並且在那裏您將通過模型方法直接創建通知。你永遠不會去從一個職位的兩個控制器操作。 – RichardAE
當我說多個控制器時,我的意思是如果您需要跨多個控制器創建一個通知 - 例如,如果您有邀請和Rsvp模型/控制器,並且他們都需要通知,則可以創建可用的共享方法在那兩個控制器中。該方法將直接通過模型創建通知。 – RichardAE