проблема маршрутизации, рельсы генерируют неправильный URL - PullRequest
0 голосов
/ 26 ноября 2009

Прежде всего, с Днем Благодарения.

Так что моя проблема с моими маршрутами, я не понимаю, почему id param на самом деле содержит весь объект. Rails дает мне эту ошибку:

user_url failed to generate from {:action=>"show", :controller=>"users", :id=>#<User id: 19, username: "Dr. Dorothy Buckridge", email: "kyra@hansenstehr.ca", crypted_password: nil, password_salt: nil, persistence_token: nil, created_at: "2009-11-10 19:38:31", updated_at: "2009-11-10 19:38:31", perishable_token: "", color: nil>}, expected: {:action=>"show", :controller=>"users"}, diff: {:id=>#<User id: 19, username: "Dr. Dorothy Buckridge", email: "kyra@hansenstehr.ca", crypted_password: nil, password_salt: nil, persistence_token: nil, created_at: "2009-11-10 19:38:31", updated_at: "2009-11-10 19:38:31", perishable_token: "", color: nil>}

Ошибка в этой строке:

<%= link_to recipe.user.username, recipe.user, :class => "user" %>

Есть идеи? Кажется, что он должен генерировать id объекта для этого атрибута.

Мой контроллер, о котором идет речь:

def index
  @recipes = Recipe.search params[:search], :field_weights => { :name => 20, :description => 10 }
end

Не могу понять, в чем проблема.

Ответы [ 2 ]

5 голосов
/ 26 ноября 2009

Вы переопределяли to_params в модели User или в любом классе, который он наследует?

Вы можете принудительно идентифицировать это с помощью:

 <%= link_to recipe.user.username, user_url(recipe.user.id), :class => "user" %>
2 голосов
/ 26 ноября 2009

Это дикое предположение, но у меня была похожая проблема, когда я набрал map.resource :user вместо map.resources :users в routes.rb

В противном случае проверьте соответствие EmFi .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...