ошибка в маршрутизации - PullRequest
0 голосов
/ 12 марта 2012

Когда я открываю http://localhost:3000/users Я получаю следующую ошибку маршрутизации:

No route matches {:action=>"req", :controller=>"friendship", :id=>"admin@ascratech.com"}

Как это решить?

Inside users / index.html.erb:

<ul>
  <% @users.each do |user| %>
  <li>
    <%= user.full_name %>
    (<%= link_to "request friendship",
              :controller => :friendships,
              :action => :req,
              :id => user.email %>)  
    </li>
  <% end %>
</ul>

Внутри FriendshipsController:

def req
    @user = User.logged_in(session)
    @friend = User.find_by_email(params[:id])
    unless @friend.nil?
      if Friendship.request(@user, @friend)
        flash[:notice] = "Friendship with #{@friend.full_name} requested"
      else
        flash[:notice] = "Friendship with #{@friend.full_name} cannot be requested"
      end
    end

    redirect_to :controller => :users, :action => :index
  end

Внутренние маршруты. Rb:

resources :friendships

Ответы [ 2 ]

0 голосов
/ 12 марта 2012

Кажется ... Как это настроено, Rails будет пытаться получить ресурс / дружбу / req / id, где он будет ожидать, что id сообщит ему, если вы хотите 1-й, 3-й или 22-й запрос.

Но вы дали это: id => "admin@ascratech.com" Rails ищет число, и вы дали ему строку.

0 голосов
/ 12 марта 2012

Может быть, вы хотите сделать:

resources :friendships do
  member do
    get :req
  end
end
...