【问题标题】:Rails 5 - Helper methodsRails 5 - 辅助方法
【发布时间】:2016-11-05 01:59:16
【问题描述】:

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

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

谁能看出我哪里出错了?

【问题讨论】:

  • 我的回答对您解决问题有帮助吗?

标签: ruby-on-rails ruby helper


【解决方案1】:

问题是您正在尝试访问 @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 %>

【讨论】:

  • 谢谢你 Arun - 非常感谢你的帮助
猜你喜欢
  • 1970-01-01
  • 2012-12-30
  • 2016-07-22
  • 2012-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-28
相关资源
最近更新 更多