ActionController::RoutingError problem

Hi Everyone,

I've been teaching myself Ruby on Rails while trying to build a new website I want to launch in the next few weeks. I've gotten pretty far, but I've hit a wall this week and I can't seem to get around it. I've been trying to implement a friends feature, allowing people to add, edit and delete friends as they see fit. I've been following the example set in the book "Practical Rails, Social Networking Sites" by Alan Bradburne, and it's been a big help, but since the particulars of my application are different, I've had to do some adjusting of the code to make it fit.

Right now, I have no problem logging in as one user, and viewing other users' profiles. From there, I can tag a user as a "friend". I can go to my friends list, and choose to edit their information, which is basically their XFN info. However, when I click on "Edit Friendship", I get the above error, ActionController::RoutingError. I just can't seem to get around it. This is the full error I'm receiving:

Here's my theory:

@friend = @friendship.friend if @friendship

prevents @friend from ever getting set because the @friendship variable is nil. Then, when you try to create you form with:

6: <% form_for(:friendship, 7: :url => user_friend_path(:user_id => @logged_in_user, 8: :friend_id => @friend), 9: :html => { :multipart => true, :method => :put}) do |f| %>

it pukes because :friend_id is being set to a nil value. Test it out by hard-coding a valid friend id in (so you would have :friend_id => 1 instead of :friend_id => @friend). If it works with a valid friend id there, then my theory was right.

Thanks for the fast idea, I tried changing the edit.rhtml file to include :friend_id => 2, which is a valid id, but I still get the same error as before.

I also tried changing the user_friend_path to user_friends_path, but I still get the same error as above too.

Something that just popped into my mind, the error message above has all the attributes of the user, not the friend properties. I would think that since the form is trying to load the friend attributes, but it has the user attributes that would fail as well. but I could be wrong :slight_smile: