новые и редактировать действия контроллера, перенаправляя на дом, перезаписывая существующий метод - PullRequest
0 голосов
/ 07 ноября 2011

У меня проблема с тем, что 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 не возвращается, он идет прямо к перенаправлению.

Есть идеи, почему это может происходить, и предложения по ее решению?

1 Ответ

1 голос
/ 08 ноября 2011

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

...