Чтение и выполнение некоторых учебных пособий по RoR говорят, что у нас должен быть частный метод для запроса объекта и указания его свойств. Например:Лучшая практика с методами для запроса объектов
def category_params
params.require(:category).permit(:name)
end
Когда я создаю новую категорию (данные в данном примере), я использую в моем создании действия:
@category = Category.new(category_params)
Но, когда я обновляю категорию, я не могу do @category = Category.new(category_params)
, потому что :category
не возвращается в params
. В этой ситуации я видел в комментариях this question, что require(:category)
необходимо удалить в действие обновления. Это исправляет проблему, но в другом случае, когда я создаю новую категорию, используя category_params
, всегда сохраняется пустой объект.
Есть два частных метода, onde с require
и другими, не является хорошей практикой, или есть? Какая хорошая практика в этом случае?
EDIT 1 (мое обновление и редактирование действия):
def edit
@category = Category.find(params[:id])
end
def update
@category = Category.find(params[:id])
if @category.update_attributes(category_params)
# TO DO
else
render 'edit'
end
end
Вы можете использовать его при обновлении. Можете ли вы опубликовать свой полный код? –
Я обновил сообщение (находится в EDIT 1). – rwehresmann
Попробуйте создать контроллер леса - 'rails g scaffold category name: string'. Я не говорю, что вы должны использовать его, но он покажет вам путь рельсов для обработки параметров. – max