Мне трудно понять, почему мое приложение автоматически создает записи в базе данных, когда я захожу на "новую" страницу.Предполагается, что страница имеет форму, которая при отправке затем и только создает записи в базе данных (SQLite3).
Контроллер:
class RecipeController < ApplicationController
def index
@recipes = Recipe.all
end
def new
@recipe = Recipe.create(params[:recipe])
if @recipe.save
redirect_to recipe_new_path
else
reload_page
end
end
def create
@recipe = Recipe.new
end
def show
end
def update
end
def destroy
end
private
def recipe_params
recipe_params = params.require(:recipes)
end
end
Представление:
<!DOCTYPE html>
<html>
<body>
<h1>Add a recipe</h1>
<%= form_for @recipe do |f| %>
<%= f.label :name, "Recipe Name:" %>
<%= f.text_field :name %>
<br>
<%= f.label :recipe, "Recipe Description:" %>
<%= f.text_field :recipe %>
<br>
<%= f.submit %>
<% end %>
</body>
</html>
Файл маршрутов:
Rails.application.routes.draw do
get 'recipe' => 'recipe#index'
get 'recipe/new' => 'recipe#new'
post 'recipe/create' => 'recipe#create'
post 'recipes' => 'recipe#create'
resources :recipes
get 'recipe/:id' => 'recipe#show'
get 'recipe/update' => 'recipe#update'
get 'recipe/destroy' => 'recipe#destroy'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end