#ruby-on-rails #strong-parameters
#ruby-on-rails #strong-параметры
Вопрос:
Могу ли я указать с помощью строгих параметров либо строку, либо хэш
У меня есть конечная точка, для которой полезная нагрузка может быть либо:
card: { number: "4111****", exp_year: "12"}
или
card: "some_encrypted_card"
в строгих параметрах
Если я использую permit(:card)
вариант 1, не работает, если я использую require(:card).permit(:number, :exp_year)
вариант 2, не работает
Есть предложения?
Ответ №1:
Вы можете запросить параметр card, чтобы узнать, какой тип он возвращает:
def card_params
if params[:card].is_a? String
params.permit(:card)
else
params.require(:card).permit(:number, :exp_year)
end
end