Rails 4 - 如何在父视图中使用辅助方法

时间:2016-08-19 02:36:43

标签: ruby-on-rails ruby helper helpers

我试图找出如何使用帮助文件。

我有项目和潜在用途的模型。协会是:

项目

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文件夹中的帮助程序不起作用。无论我是否以创建项目的用户身份登录,我都会看到potential_uses/open_comments视图。

谁能看到我出错的地方?

1 个答案:

答案 0 :(得分:0)

您在帮助程序中收到了一个参数project,但在帮助程序方法中,您正在尝试访问@project.profile.user_id。助手里面@project是零。你应该使用

if @current_user.id == project.profile.user_id 
  render 'potential_uses/private_comments'