У меня есть модель User, модель Post и интересная модель.has_many сквозные и частичные
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 выглядит следующим образом:
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 имеет следующим образом:
<%= render :partial => "users/interests", :object => @user_interests %>
_interests.html. Еврорадио парциальное выглядит следующим образом:
ul
<% unless current_user.nil? then -%>
<% @user_interests.each do |interest| -%>
li<%= interest.post.title %>/li
<% end %>
<% end -%>
/ul
Учитывая все это, когда я на локальном хосте: 3000/сообщений/1 мои частичные проявляющимся отлично, но когда в локальном хосте: 3000/сообщений я получаю ошибку undefined method 'title' for nil:NilClass
, таким образом, ошибка в строке li<%= interest.post.title %>/li
, указанная выше в части _interests.html.erb.
Что, черт возьми, будет проблемой?
ТИА
У меня есть, что покрыто моделью сообщений через has_many: interest,: dependent =>: destroy – jdog
Также, что странно, если я извлечу код в частичном, чтобы разделить заголовок, чтобы обойти эту ошибку. У меня есть заголовок в частичном, который задан как «У вас есть @ user_interests.length интересы», и когда я нахожусь на странице сообщений и говорю, что на странице сообщений есть 10 сообщений, которые мой заголовок гласит: «У вас 10 интересов», поэтому его подсчет всех как интерес, даже если пользователь не выбрал эту должность в качестве интереса. – jdog
И когда я перехожу на одну конкретную страницу с сообщениями, так что показывайте действие, на этой странице приведенный выше заголовок гласит: «У вас есть 1 интерес», поэтому он, кажется, подсчитывает количество сообщений на конкретных страницах (индекс или показ) и суммирует те, кто интересуется пользователями. – jdog