0

(Rails 3.2初心者、アプリはtwitter)

ルートを理解できればよかったのですが、まだ理解できていません。ユーザー名を手動で送信することで、ユーザーが他のユーザーをフォローできるシステムをセットアップしました。

@relationship = User.find_by_username(params[:username])
if @relationship
  if current_user.following? @relationship
    current_user.unfollow @relationship
  else
    current_user.follow @relationship
  end
else
  flash[:notice] = "User with username #{params[:username]} is not found"
end

これを吐き出す:

undefined method `model_name' for NilClass:Class

ビューで @relationship を :relationship に次のように変更するまで、それは実際には機能しませんでした。

<%= form_for :relationship do |f| %>
<%= f.text_field :username, placheholder: "username" %>
</div>
<br/>
<%= f.submit "Add/Subtract" %>
<% end %>

エラーメッセージ(「User with username ..」)が常にポップアップしますが、「Add / Subtract」をクリックすると、次のように変わります。

[POST] "/buddies" に一致するルートはありません

これはすべて User モデルの下にあります。

何かがひどく間違っていると思います。

編集: ルートは次のようになります.. (ribbit = tweets)

 Ribbitapp::Application.routes.draw do

   resources :ribbits
   resources :relationships
   resources :sessions
   resources :users


   get 'logout', to: 'sessions#destroy', as: 'logout'

   #get 'buddies', to: 'users#buddies', as: 'buddies'

   match 'buddies', to: 'users#buddies', as: 'buddies'

   root to: 'users#new'
4

1 に答える 1