У меня возникла проблема, когда 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
даже текст рендеринга на новом не возвращается, он идет прямо на перенаправление.
Любые идеи, почему это может происходить, и предложения по ее устранению?