-1

我有一個用例,我需要在單個表單提交中創建2個元組(一個在邀請函和一個在通知表中)(操作指向邀請#創建)。 如何從邀請中調用通知創建方法create在通知表中創建新元組。 PS:邀請和通知之間沒有關係。在單個表單提交中調用2個控件後臺方法

回答

0

您不會去通知創建操作,您只需在邀請創建中執行此操作。下面的代碼將使用共同關心的問題的方法,解釋它下面:

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 
+0

謝謝你,是的,將用於多個控制器。所以,該創建方法將在通知控制器?我需要一條路線嗎?如果可能的話,你可以給我一個小片段。 – Jarvis

+0

不,不會有第二條路線,表單將張貼到Invitations創建,並且在那裏您將通過模型方法直接創建通知。你永遠不會去從一個職位的兩個控制器操作。 – RichardAE

+0

當我說多個控制器時,我的意思是如果您需要跨多個控制器創建一個通知 - 例如,如果您有邀請和Rsvp模型/控制器,並且他們都需要通知,則可以創建可用的共享方法在那兩個控制器中。該方法將直接通過模型創建通知。 – RichardAE