новые и редактировать действия контроллера, перенаправляющие на главную, «перезаписывая существующий метод»

У меня возникла проблема, когда 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

даже текст рендеринга на новом не возвращается, он идет прямо на перенаправление.

Любые идеи, почему это может происходить, и предложения по ее устранению?


person pedalpete    schedule 07.11.2011    source источник


Ответы (1)


Что в методе :require_user?
Если вы прокомментируете load_and_authorize_resource, это работает?

person vladdruzh    schedule 07.11.2011
comment
конечно! спасибо, не могу поверить, что я этого не видел. Теперь мне просто нужно выяснить, почему авторизация не работает на этой странице. похоже ошибка авторизации по канкану. Благодарность - person pedalpete; 08.11.2011