Неправильный запрос вставки в Rails - PullRequest
0 голосов
/ 04 декабря 2018

Итак, я пытаюсь изучить Ruby on Rails, и я пытался закодировать простое создание продукта в базу данных, но rails только выполняет запрос вставки только со значениями create_at и updated_at.Вот мое действие create_controller для создания;

def create
    @product = Product.new(params[:product_params])

    @product.save
    redirect_to @product
end

private 
    def product_params
        params.require(:product).permit(:title, :price)
    end

Вот мой new.html.erb в папке products;

<%= form_with scope: :product ,url:products_path, local: true do |form| %>
<p>
 <%= form.text_field :title %>
</p>

<p>
  <%= form.text_field :price %>
</p>

<p>
<%= form.submit %>

<% end%>

И это SQL-запрос, выполняемый Rails для сервера Rails

Запущен POST "/ products" для 127.0.0.1 в 2018-12-04 16:44:52 +0300 Обработка ProductsController #создать как HTML-параметры: {"utf8" => "✓", "authenticity_token" => "9Z4aFNpMv + uUPXx + LkHoOtYpWae / 8tIOCQ3Jt47AFScp / vVHTWI + G4d6CjHqBz6t5L5UR57Wog =" bro> "">> ">">>>> ">»>>> 1> 7> "1>> ">>">>>> "1>> ">>>>"> 7, "price" => "3434"}, "commit" => "Сохранить продукт"} (0,2 мс) BEGIN ↳ app / controllers / products_controller.rb: 8 Создание продукта (0,3 мс) INSERT INTO products (created_at, updated_at) VALUES ('2018-12-04 13:44:52', '2018-12-04 13:44:52') ↳ app / controllers / products_controller.rb: 8 (5,4 мс) COMMIT ↳app / controllers / products_controller.rb: 8 Перенаправлено на http://localhost:3000/products/12 Завершено 302 Найдено за 25 мс (ActiveRecord: 7,4 мс)

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

def create @product = Product.new (product_params) @ product.save redirect_to @product end private def product_params params.require (: product) .permit (: title,: price) end

0 голосов
/ 04 декабря 2018

Вы не делаете

@product = Product.new(params[:product_params])

Вы делаете

@product = Product.new(product_params)

product_params - это метод, который возвращает записи параметров в белом списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...