@WEB_champion

Почему в RoR из формы edit в метод update не передается параметры, кроме params[:id] ???

Контроллер REST. Rails версии 4.
Из формы edit в метод update не передается параметры, кроме id.

# PATH/PUT /products/1
def update
@product = Product.find_by(title: params[:title])
if @product 
render text: "Есть"
else
render text: "Нету"
end 
end


Почему же не принимает (не передает)??? Попробовал и так:
def product_params
      params.require(:product).permit(:title)
end


Из этого метода тоже не принимает.
Скажите, пожалуйста, как решить проблему?
  • Вопрос задан
  • 2246 просмотров
Решения вопроса 1
viktorvsk
@viktorvsk
Во-первых, не используйте все эти автоматические файндеры (find_by, find_byt_title...). Используйте или просто find (по id) или уже where('...').first
Во-вторых, дебажить надо или byebug или pry или, если быстро проверить значение - делаете:
raise params.inspect
Например, что бы посмотреть, что и как передается в params

Вы не скинули вашу форму, не скинули, что находится в парамс. Скорее всего, вам просто нужно сделать:
@product = Product.find_by(title: params[:product][:title]


Но желательно еще в корне пересмотреть подход дебага.

P.S. Что такое strong params (params.require) тоже разберитесь, это важная фича.
В вашем случае добавляйте, не добавляйте, так работать не будет. Вы сделали метод product_params, так его и нужно вызывать: @product = Product.where(product_params)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы