1

в моем приложении rails, пользователь может выбрать других пользователей, с которыми они хотели бы присоединиться. Я пытаюсь объединить идентификатор текущего пользователя с теми, которые выбрал пользователь. Это один из способов я пробовал:Слияние параметров рельсов

def party_params 
    params.require(:party).permit(:length, :game_id, user_ids: []).merge("user_ids" => ["user_ids"] + [current_user.id]) 
end 

Это возвращается с:

Не удалось найти всех пользователей с 'ид': (0, 17) (Найдено 1 результатов, но ищет 2)

Ведение .merge(:user_ids => [current_user.id]) вместо результатов в партии только создается с текущим пользователем и удаления всех выбранных пользователей.

Я также попытался переместить функцию .merge в функцию и называть ее новым, но это тоже не работает.

В моих моделях партия has_and_belongs_to_many :users и также пользователь has_and_belongs_to_many :parties

Любая помощь приветствуется! Спасибо.

ответ

2

Я бы написал так:

def party_params 
    params.require(:party).permit(:length, :game_id, user_ids: []).tap do |p| 
    p[:user_ids] << current_user.id 
    end 
end 
+0

Спасибо! Это сработало отлично - я не знал о .tap, так что это будет полезно в будущем. – JG3