Вы уверены, что это должно быть params[:type]
? Во-первых, проверьте свои журналы, чтобы увидеть, что находится внутри параметров, прежде чем вы получите доступ к действию в контроллере.
Для проверки нескольких вариантов вы можете использовать конструкцию переключателя:
case params[:type]
when "Type A"
# do sth
when "Type B"
# do sth
else # not A nor B, can be nil
# do nothing
end
А если вам нужно глубже в параметрах, вы можете использовать if / else:
if params[:type] && params[:type][:value] == "sth"
# do sth
elsif params[:type] && params[:type][:value] == "..."
# do sth
end
И проверьте, откуда вы получаете ошибку, потому что в Ruby вы можете легко сравнить nil и String, так что это не из-за использования ==
в вашем примере.