J'ai un modèle utilisateur, un modèle Post et un modèle d'intérêt.has_many through et partials
User has_many posts through interests
User has_many interests
Post has_many users through interests
Post has_many interests
Interest belongs to Post
Interest belongs to User
Application_Controller est la suivante:
class ApplicationController < ActionController::Base
before_filter :login_from_cookie
before_filter :find_user_interests
helper :all # include all helpers, all the time
session :session_key => '_blah_session'
include AuthenticatedSystem
def find_user_interests
@user_interests = current_user ? current_user.interests : []
true
end
end
application.html.erb a comme suit:
<%= render :partial => "users/interests", :object => @user_interests %>
_in terests.html.erb partielle est la suivante:
ul
<% unless current_user.nil? then -%>
<% @user_interests.each do |interest| -%>
li<%= interest.post.title %>/li
<% end %>
<% end -%>
/ul
Compte tenu de tout cela quand je localhost: 3000/messages/1 mes émissions partielles de haut bien, mais quand dans localhost: 3000/messages Je reçois un erreur undefined method 'title' for nil:NilClass
donc une erreur dans la ligne li<%= interest.post.title %>/li
montré ci-dessus dans le _interests.html.erb partielle.
Que diable serait le problème?
TIA
J'ai couvert cela via le modèle Posts via has_many: intérêt,: dependent =>: destroy – jdog
Aussi ce qui est bizarre, c'est si je sors le code dans le partial pour que dislays le titre afin de contourner cette erreur. J'ai un titre dans le partiel qui est défini comme "Vous avez @ user_interests.length intérêts" et quand je suis sur la page des messages et dis la page des messages a 10 messages mon titre se lit comme "Vous avez 10 intérêts" donc son tout compter messages comme un intérêt même si l'utilisateur n'a pas sélectionné le poste comme un intérêt. – jdog
Et quand je vais à une page Posts spécifique, alors montrez l'action, sur cette page le titre référencé ci-dessus lit "Vous avez 1 intérêts" donc son semble compter le nombre de messages sur les pages spécifiques (index ou show) et totalisant ceux-ci en tant qu'utilisateurs d'utilisateurs. – jdog