【问题标题】:Rails 4 - link_to helper - path to associated objectRails 4 - link_to helper - 关联对象的路径
【发布时间】:2016-01-30 00:25:16
【问题描述】:

我正在尝试在 Rails 4 中制作应用程序。

我仍然对基本概念感到困惑。

我正在尝试在我的个人资料显示页面上放置一个链接,指向相关组织的名称。

我有一个档案模型和一个组织模型。

关联是:profile 属于组织和组织 has_many 个配置文件。

在我的个人资料显示页面上,我尝试了所有我能想到的不同方式来尝试为相关组织创建指向组织显示页面的链接。我试过了:

<%= link_to @profile.organisation.try(:title).upcase, profile_organisation_path(organisation.id) %>

<%= link_to @profile.organisation.try(:title).upcase, profile_organisation_path(organisation_id) %>

<%= link_to @profile.organisation.try(:title).upcase, organisation_path(profile.organisation) %>

我已经尝试了大约 20 种变体。我不知道自己在做什么,也不明白如何阅读 API 文档。所以我被卡住了。

谁能看到我做错了什么?

【问题讨论】:

  • 两件事:我需要看到你的控制器(因为这是我们告诉视图我们正在谈论的组织的方式)。了解您遇到的错误也将非常有帮助。我怀疑您的组织变量是空的,但根据您提供的内容我无法判断。
  • 个人资料控制者还是组织控制者?
  • 我知道该变量正在工作,因为当我只是填充组织标题(而不是链接)时,它会为我提供组织标题(存储在 org 表中)。
  • 我会对您的配置文件控制器感兴趣。

标签: ruby-on-rails path link-to


【解决方案1】:

试试

<%= link_to @profile.organisation.try(:title).upcase, organisation_path(@profile.organisation.id) %>

【讨论】:

    【解决方案2】:

    除了控制器,我想我知道发生了什么。尝试进行以下编辑

    <%= link_to @profile.organisation.try(:title).upcase, organisation_path(@profile.organisation) %>
    

    除非您以某种方式在其他地方设置了局部变量组织,否则您需要使用实例变量来指定关联的组织,就像您在命名链接时所做的那样。

    【讨论】:

    • #:0x007ff409ba4ca8> 的未定义方法 `profile_organisation_path'
    • 我认为马特的回答有。
    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    相关资源
    最近更新 更多