Rails 5 - 辅助方法
Rails 5 - Helper methods
我正在尝试学习如何在我的 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 %>
然后在我的 proposals/show.html.erb 中,我有:
<h4><%= text_for_proponent(@proposal, @proposal.user) %></h4>
这是行不通的。我找不到如何将用户实例提供给助手以用于填充视图。
谁能看出我错在哪里?
问题是您正在尝试访问 @proposal.user
但 @proposal
是 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 %>
我正在尝试学习如何在我的 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 %>
然后在我的 proposals/show.html.erb 中,我有:
<h4><%= text_for_proponent(@proposal, @proposal.user) %></h4>
这是行不通的。我找不到如何将用户实例提供给助手以用于填充视图。
谁能看出我错在哪里?
问题是您正在尝试访问 @proposal.user
但 @proposal
是 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 %>