Rails, как инкапсулировать 2 var внутри аргумента? - PullRequest
0 голосов
/ 07 декабря 2018

Это кажется тривиальным вопросом, но, после настройки простого метода rails, я бы хотел передать аргументу более одного параметра, вот код ниже:

 def create
    @comment = @commentable.comments.new(comment_params)

    @comment.user = current_user

    Notification.create!(action: "posted", actor: current_user,
      recipient: ([@post.user, @comment.user]), notifiable: @comment)


    if @comment.save

      render json: "Commented successfully", status: 201
    else
      render json: @comment.errors, status: :unprocessable_entity
    end
  end

, если получатель простоreceive @ post.user в порядке, но я хотел бы знать, возможно ли передать @ comment.user или любой другой var внутри этого вида заявления

1 Ответ

0 голосов
/ 07 декабря 2018

Если у вас правильные отношения типа has_many, вы можете сделать это:

Notification.create!(action: "posted", actor: current_user,
  recipients: [ @post.user, @comment.user ], notifiable: @comment)
)

Где вы просто передаете их. Если у вас нет связи «многие ко многим» междуУведомление и Пользователь, затем вам нужно создать несколько записей:

[ @post.user, @comment.user ].each do |user|
  Notification.create!(action: "posted", actor: current_user,
    recipient: user, notifiable: @comment)
  )
end

Первый подход предпочтителен, но требует правильной таблицы соединения между Пользователем и Уведомлением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...