(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'