2016-08-19 31 views
0

我想弄清楚如何使用助手文件。Rails 4 - 如何在父视图中使用助手方法

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

项目

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 

我在我潜在的使用视图文件夹中有两个视图部分。如果当前用户是项目创建者,我想呈现其中一个部分,而如果当前用户不是项目创建者,则想呈现其中一个部分。

目前,没有渲染错误,但项目文件夹中的助手不起作用。无论我是否以进行该项目的用户身份登录,我都可以看到potential_uses/open_comments视图。

任何人都可以看到我出错了吗?

+0

帮助程序中的@ current_user是什么?您是否尝试将其打印到控制台? –

+0

@ArunKumar - 这是一种设计方法,可以查看登录用户是谁。 – Mel

+0

我想由devise提供的方法是'current_user'。我的答案能解决你的问题吗? –

回答

0

您正在助手中接收到参数project,但在助手方法中,您尝试访问@project.profile.user_id。帮手内没有@project。您应该使用

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

谢谢阿伦 - 这很有道理 – Mel

+0

它与@current_user很好地工作。 – Mel

+0

太棒了!更新了我的答案。 –