У меня проблема с тем, что Rails по какой-то причине перенаправляет методы new и edit на домашнюю страницу, но методы index и show возвращаются нормально.
Нет ничего особенного в контроллере или маршрутах, хотя я включу их ниже.
Я получаю ошибку
Started GET "/recipes/new" for 192.168.5.46 at 2011-11-07 11:40:06 -0800
Processing by RecipesController#new as HTML
Creating scope :page. Overwriting existing method Recipe.page.
SQL (4.0ms) SHOW TABLES
Creating scope :page. Overwriting existing method User.page.
SQL (3.5ms) SHOW TABLES
User Load (1.1ms) SELECT `users`.* FROM `users` WHERE (`users`.`id` = 2) LIMIT 1
CACHE (0.1ms) SELECT `users`.* FROM `users` WHERE (`users`.`id` = 2) LIMIT 1
Creating scope :page. Overwriting existing method RoleUser.page.
Creating scope :page. Overwriting existing method Role.page.
Role Load (2.5ms) SELECT `roles`.* FROM `roles` INNER JOIN `role_users` ON `roles`.id = `role_users`.role_id WHERE ((`role_users`.user_id = 2))
Completed in 887ms
Redirected to http://localhost:3000
Я предполагаю, что проблема с этим битом перезаписи, но я не знаю, почему он пытается это сделать, а затем перенаправляет на дом.
Контроллер моих рецептов
class RecipesController < ApplicationController
load_and_authorize_resource
before_filter :require_user
respond_to :html, :js
def index
@recipes = Recipe.find_all_by_author_id(current_user.id)
end
def show
@recipe = Recipe.find(params[:id])
end
def new
return render :text =< 'new recipe'
@recipe = Recipe.new
end
def create
@recipe = Recipe.new(params[:recipe])
@recipe.author_id=current_user.id
if @recipe.save
flash[:notice] = "Successfully created recipe."
redirect_to @recipe
else
render :action =< 'new'
end
end
end
даже текст рендеринга в new не возвращается, он идет прямо к перенаправлению.
Есть идеи, почему это может происходить, и предложения по ее решению?