Я пытаюсь создать объект "gif", используя form_for. Однако, когда я нажимаю кнопку «Отправить», я просто перенаправляюсь на мою страницу «gif», и ничего не создается. Я хочу нажать «submit» и создать «gif» и перенаправить на его страницу.Rails form_for не работает
Вот мой контроллер страницы
class GifsController < ApplicationController
def index
if params[:tag]
@gifs = Gif.tagged_with(params[:tag])
elsif params[:search]
@gifs = Gif.search(params[:search])
else
@gifs = Gif.all
end
end
def show
@gif = Gif.find(params[:id])
end
def new
@gif = Gif.new
end
def create
@gif = Gif.new(gif_params)
@gif.save
redirect_to @gif
end
private
def gif_params
params.require(:gif).permit(:title, :link, :recipe, :all_tags, ingredients_attributes: [:id, :name, :_destroy], directions_attributes: [:id, :step, :_destroy])
end
end
Вот моя форма на новой странице
<%= form_for @gif, :as => :gif, :url => gifs_path do |f| %>
.....
<% end %>
Терминал Выход:
Started POST "/gifs" for 69.127.215.48 at 2017-01-14 21:56:18 +0000
Processing by GifsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"cPycHb5KywsTgLbHN+sZJjSbyAbGlGce4GDpqolTA5vQNCScBszU1C0wXqFF+jB5Y6OYfSSK0PTe1Qod9O1aGA==", "gif"=>{"title"=>"qwe", "link"=>"http://i.imgur.com/AYPJoxS.gif", "ingredients_attributes"=>{"1484430976428"=>{"name"=>"123", "_destroy"=>"false"}}, "directions_attributes"=>{"1484430978979"=>{"step"=>"123", "_destroy"=>"false"}}}, "commit"=>"Upload"}
(0.2ms) begin transaction
(0.1ms) rollback transaction
Redirected to https://recipes-in-a-gif-dleggio1.c9users.io/gifs
Completed 302 Found in 196ms (ActiveRecord: 0.3ms)
Started GET "/gifs" for 69.127.215.48 at 2017-01-14 21:56:18 +0000
Processing by GifsController#index as HTML
Rendering gifs/index.html.erb within layouts/application
Gif Load (0.3ms) SELECT "gifs".* FROM "gifs"
Tag Load (0.1ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."gif_id" = ? [["gif_id", 1]]
Tag Load (0.1ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."gif_id" = ? [["gif_id", 2]]
Tag Load (0.1ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."gif_id" = ? [["gif_id", 3]]
Tag Load (0.1ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."gif_id" = ? [["gif_id", 4]]
Tag Load (0.1ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."gif_id" = ? [["gif_id", 5]]
Rendered gifs/index.html.erb within layouts/application (11.2ms)
Completed 200 OK in 73ms (Views: 70.6ms | ActiveRecord: 0.8ms)
Если изменить form_for в: GIF вместо @ gif, он работает. Тем не менее, мне нужно использовать @gif для драгоценного камня, который я использую, coccoon.
Пробовал это, все то же самое – user3182252
Хм, я думаю, пришло время выяснить, какой запрос происходит, когда вы нажимаете кнопку отправки. Можете ли вы разместить вывод своего терминала, пожалуйста? Вероятно, я должен был сначала задать это :) – stephenmurdoch
Добавил (а) мой первоначальный пост, спасибо – user3182252