【问题标题】:Rails 4 - Helper Method - use in a viewRails 4 - 辅助方法 - 在视图中使用
【发布时间】:2016-04-08 01:48:52
【问题描述】:

我正在尝试弄清楚如何在 Rails 4 中使用辅助方法。

我有两个模型,组织和偏好。

关联是:

Organisation has_one :preference
Preference belongs_to :organisation

在我的偏好表中,我有一个名为 :prior_notice_required 的属性

在我的组织视图中,我试图显示组织的偏好。在我的组织视图文件夹中,我有一个部分称为首选项。

在我的 OrganisationsHelper.rb 中,我尝试过这个:

module OrganisationsHelper

    def publicity_notice_required
        if @organisation.preference.prior_notice_required == true
            'Prior notice of publicity is required'
        else
            'Prior notice of publicity is not required'
        end
    end

在我的组织偏好部分中,然后我尝试以下每个:

<%= @organisation.preference.prior_notice_required(publicity_notice_required) %>
<%= publicity_notice_required(@organisation.preference) %>

<%= publicity_notice_required(@organisation.preference.prior_notice_required) %>

我不知道如何让它工作。有没有人有帮手的经验,看看我哪里出错了?

【问题讨论】:

  • 这段代码现在发生了什么?你有错误吗?如果是这样,什么错误?请提供尽可能多的确切信息,了解正在发生的事情
  • 试试&lt;%= publicity_notice_required %&gt;。你已经定义了一个不带参数并返回一个字符串的方法,所以像这样调用/使用它。

标签: ruby-on-rails associations helper


【解决方案1】:

就像在视图中调用&lt;%= publicity_notice_required %&gt;一样简单。

Rails Helpers 是包含在您的应用程序中的模块。这让生活变得轻松,但在封装和关注点分离方面也有一些缺点。

【讨论】:

    【解决方案2】:

    我不确定这是否正确 - 但它似乎正在工作。

    我将观点改为:

    <%= publicity_notice_required(@organisation.preference) %>
    

    和我的助手:

    def publicity_notice_required(organisation)
            if @organisation.preference.prior_notice_required == true
                'Prior notice of publicity is required'
            else
                'Prior notice of publicity is not required'
            end
        end
    

    我不确定为什么(组织)需要放在括号中,或者它是否实际上也意味着包含偏好。希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      相关资源
      最近更新 更多