I am trying to create an activity feed with the most recent activities from my TrainingSession model.
class User
has_many :training_sessions
end
class TrainingSession
belongs_to :user
end
The problem is that I am trying to access a user’s data in the view page (mainly the user’s name) by instantiating an object from the TrainingSessions database table, as shown below:
<% @training_sessions.each do |training_session| %>
<%= training_session.user_id %>
The problem is that, although I successfully get the user’s id, I cannot call, for example:
training_session.user_id.name
… otherwise I get the NoMethodError shown below:
undefined method `first_name' for 2:Fixnum
so my question is … how can I access the user’s data from the TrainingSession’s object?
any help would be much appreciated. Pretty stumped on this one.
The reason that you get a “undefined method `name’ for nil:NilClass”-error is that some training sessions do not belong to a user. The solution is to cleanup your database:
If it is expected behavior to have training sessions that don’t belong to a user, you have to check that the user is not
nilin your loop: