2016-11-05 3 views
0

Я пытаюсь научиться использовать вспомогательные методы в моем приложении Rails 5.Rails 5 - Вспомогательные методы

У меня есть модель под названием Proposal, а другая - User.

В моем помощнике Proposal я пытаюсь написать помощника, чтобы показать имя и местоположение родительского пользователя (предложения принадлежат пользователям).

Я попытался:

def text_for_proponent(proposal, user) 
    return unless current_user.id == proposal.user.id 
    render 'users/profiles/formal_name_title', user: @proposal.user 
end 

Тогда в моем просмотров/пользователей/formal_name_title.html.erb, у меня есть:

<%= @user.full_name.titleize %> · <%= @user.organisation.title.titleize %> · <%#= @user.addresses.first.country_name.titleize %> 

Тогда в моих предложениях/show.html.erb, я имеют:

<h4><%= text_for_proponent(@proposal, @proposal.user) %></h4> 

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

Может ли кто-нибудь увидеть, где я ошибаюсь?

+0

Помог ли мой ответ решить проблему? –

ответ

1

Проблема в том, что вы пытаетесь получить доступ к @proposal.user, но @proposal is nil внутри помощника. Вместо этого вы должны использовать локальную переменную proposal.

render 'users/profiles/formal_name_title', user: proposal.user 

И, вы должны изменить ваше частичное использование локальной переменной user.

<%= user.full_name.titleize %> · <%= user.organisation.title.titleize %> · <%= user.addresses.first.country_name.titleize %> 
+0

Спасибо Арун - Я очень ценю вашу помощь – Mel

Смежные вопросы