Rails 4 - 如何在父视图中使用辅助方法
Rails 4 - how to use a helper method in the parent view
我正在尝试弄清楚如何使用助手文件。
我有项目和潜在用途的模型。这些协会是:
项目
has_many :potential_uses
accepts_nested_attributes_for :potential_uses, reject_if: :all_blank, allow_destroy: true
潜在用途
belongs_to :project
belongs_to :user
在我的项目显示页面中,我引用了一个在我的项目帮助文件夹中定义的帮助方法:
<%= potential_uses_for_viewer(@project) %>
辅助方法(在 projects_helper.rb 中)有:
def potential_uses_for_viewer(project)
if @current_user.id == @project.profile.user_id
render 'potential_uses/private_comments'
else
render 'potential_uses/open_comments'
end
end
我的潜在用途视图文件夹中有两个视图部分。如果当前用户是项目创建者,我想渲染其中一个部分,如果当前用户不是项目创建者,我想渲染另一个部分。
目前没有渲染错误,但是projects文件夹中的helper不起作用。无论我是否以创建项目的用户身份登录,我都会看到 potential_uses/open_comments
视图。
谁能看出我哪里出错了?
您在帮助器中收到一个参数 project
,但在帮助器方法中,您正在尝试访问 @project.profile.user_id
。 @project
在助手内部为 nil。你应该使用
if @current_user.id == project.profile.user_id
render 'potential_uses/private_comments'
我正在尝试弄清楚如何使用助手文件。
我有项目和潜在用途的模型。这些协会是:
项目
has_many :potential_uses
accepts_nested_attributes_for :potential_uses, reject_if: :all_blank, allow_destroy: true
潜在用途
belongs_to :project
belongs_to :user
在我的项目显示页面中,我引用了一个在我的项目帮助文件夹中定义的帮助方法:
<%= potential_uses_for_viewer(@project) %>
辅助方法(在 projects_helper.rb 中)有:
def potential_uses_for_viewer(project)
if @current_user.id == @project.profile.user_id
render 'potential_uses/private_comments'
else
render 'potential_uses/open_comments'
end
end
我的潜在用途视图文件夹中有两个视图部分。如果当前用户是项目创建者,我想渲染其中一个部分,如果当前用户不是项目创建者,我想渲染另一个部分。
目前没有渲染错误,但是projects文件夹中的helper不起作用。无论我是否以创建项目的用户身份登录,我都会看到 potential_uses/open_comments
视图。
谁能看出我哪里出错了?
您在帮助器中收到一个参数 project
,但在帮助器方法中,您正在尝试访问 @project.profile.user_id
。 @project
在助手内部为 nil。你应该使用
if @current_user.id == project.profile.user_id
render 'potential_uses/private_comments'