フォーラムの申し込みを完了しようとしています。ユーザーの友情をアレンジしたい。認証システムとしてdeviseを使用しています。いくつかの提案が欲しいです。ユーザーと友情にリソースをネストしますか。これは、Railscastsが使用した方法です。
devise_for :users
resources :users, only: [:index, :show]
resources :friendships, only: [:create, :destroy]
これは私が使用した方法です:
devise_for :users
resources :users, only: [:index, :show] do
resources :friendships, only: [:create, :destroy]
end
私の本当の問題はそれです。signed_inユーザーがユーザーリストを確認し、フレンドリストにない場合はフレンドを追加できるようにフレンドシップを使用したいと思います。これで、友達を複数回追加できます。また、ユーザーは自分を友達として追加できます。
if/else
このリンクをステートメントで修正するにはどうすればよいですか?
ユーザープロファイルの表示は機能します:
<section>
<h1>
<%= @user.username %>
</h1>
<%= link_to "Arkadaşlarıma Ekle", friendships_path(:friend_id => @user), :method => :post,class: "btn btn-large btn-primary" %>
</section>
そして、ここで私は友人のプロフィールを表示する方法を見つけることができません。:
<% for friendship in @friendships %>
<%= link_to friendship.friend.username, '#' %>
(<%= link_to 'Sil', friendship, :method => :delete %>)
<% end %>
..レーキルート:
私はそれを理解できます、私は正しいif / elsesを使用する必要がありますが、リソースとルーティングをネストすることに迷っています。。説明ありがとうございます。
これらは私の編集です:私のusers_controllerで:
def user_is_friend?(other_user)
current_user.friendships.find_by_friend_id(other_user.id)
end
<% unless user_is_friend?(@user) %>
<%= button_to "Add friend", friendships_path(:friend_id => user), :method => :post %>
<% end %>
それが正しいか?