könnte man mir raten, wie man @friend
in meinem Controller definiert. Ich habe @friend
als @friend = User.find_by_email(params[:id])
definiert, aber dies wird nicht abgeholt. wenn man freundlich erklären könnte, wäre ich sehr dankbarundefined methode `id 'für nil: NilClass - referentielle association - rails 4
i erhalten derzeit diesen Fehler
undefined method `id' for nil:NilClass
views/Karten/show.html.erb
<div class="current_connection">
<%= friendship_status(@user, @friend) %>
</div>
in meinem cards_controller.rb
class CardsController < ApplicationController
before_action :set_card, only: [:show, :edit, :update, :destroy]
before_filter :setup_friends
def index
...
end
def show
end
def new
...
end
...
private
def set_card
@card = Card.find(params[:id])
end
def setup_friends
@user = User.find(current_user.id)
@friend = User.find_by_email(params[:id])
end
def card_params
params.require(:card).permit(:title, :event_id)
end
end
frienship_helper.rb
module FriendshipsHelper
# Return an appropriate friendship status message.
def friendship_status(user, friend)
friendship = Friendship.find_by_user_id_and_friend_id(user.id, friend.id)
return "#{friend.firstname} is not in your network (yet)" if friendship.nil?
case friendship.status
when 'requested'
"#{friend.firstname} wants to connect with you"
when 'pending'
"You have requested to connect with #{friend.firstname}"
when 'accepted'
"#{friend.firstname} is in your network"
end
end
end
Routen
Rails.application.routes.draw do
devise_for :users
resources :users do
resources :events
end
resources :events do
resources :cards
end
end