Rails 5 - 帮助方法

时间:2016-11-05 01:59:16

标签: ruby-on-rails ruby helper

我正在尝试学习如何在我的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

然后在我的views / users / 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>

这不起作用。我找不到如何将用户实例提供给用于填充视图的帮助器。

谁能看到我出错的地方?

1 个答案:

答案 0 :(得分:1)

问题是您尝试访问@proposal.user,但帮助程序中的@proposalnil。您应该使用局部变量proposal代替。

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

并且,您应该更改partial以使用局部变量user

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