Rails - как показать атрибут связанной модели

Я пытаюсь сделать приложение в Rails 4.

Я только что задал этот связанный вопрос и получил четкий ответ. Кажется, я не могу понять, как взять эту логику и применить ее в другом месте.

Rails Как показать атрибуты из родительского объекта

У меня есть модель пользователя, модель профиля модели проекта и модели университетов.

Ассоциации являются:

Profile belongs to university
Profile belongs to user
University has many profiles
University has many projects
Projects HABTM user
Projects belong to universities

В контроллере моих проектов я определяю @creator следующим образом:

def create
    logger.debug "xxx create project"
    #authorise @project
    @project = Project.new(project_params)
    @project.creator_id = current_user.id
    @project.users << current_user
    respond_to do |format|
      if @project.save

        format.html { redirect_to @project }
        format.json { render action: 'show', status: :created, location: @project }
      else
        format.html { render action: 'new' }
        format.json { render json: @project.errors, status: :unprocessable_entity }
      end
    end
  end

Я пытаюсь определить creator_profile следующим образом:

def show
    #authorise @project

    @project = Project.find(params[:id])
    @creator = User.find(@project.creator_id)
    @creator_profile = @creator.profile

  end

В моей унифицированной таблице у меня есть атрибуты, называемые логотипом и именем. Я использую загрузчик аватаров, в котором я определил логотип (вот почему у меня есть два .logo ниже).

В моих проектах, show, я хочу отобразить университет, к которому принадлежит создатель проекта.

Я пробовал это:

<%= image_tag(@creator_profile.university.logo.logo) %> 
        <div class="generaltext"><%= @creator_profile.university.name %> </div>

Я получаю этот результат: неопределенный метод `logo 'для nil: NilClass

На основании ссылки на мою проблему выше

<%= image_tag(creator_profile.university.logo.logo) %> 
            <div class="generaltext"><%= creator_profile.university.name %> </div>

Я получаю этот результат:

undefined local variable or method `creator_profile' for #<#<Class:0x007f998f17ad88>:0x007f998d1ce318>

Я не уверен, что понял очень подробные объяснения, данные в ответе на мой предыдущий вопрос. Если первая версия верна, то я вообще не понимаю объяснения. Если вторая версия верна, то почему появляется это сообщение об ошибке?

Мне интересно, если проблема возникает из-за отсутствия связи между университетом и пользователем? Я надеялся, основываясь на пользователе, который создал проект, найти универ, к которому принадлежит создатель.

Вот почему я пытался:

<%= image_tag(creator_profile.project.university.logo.logo) %> 
                <div class="generaltext"><%= creator_profile.project.university.name %> </div>

Я получаю эту ошибку:

undefined method `project' for #<Profile:0x007f998ada41b8>

Ответы на вопрос(2)

Ваш ответ на вопрос