gpt4 book ai didi

ruby-on-rails - rails : How to render path to namespaced file

转载 作者:行者123 更新时间:2023-12-04 16:57:29 25 4
gpt4 key购买 nike

我正在尝试学习如何在我的 Rails 5 应用程序中使用命名空间文件夹。

我有组织和 Package_ips 的模型。包是我用来收集不同类型 Assets 的文件夹的名称。 Ip 是那些嵌套 Assets 之一。

这些协会是:

组织

has_many :ips, as: :ipable, class_name: Package::Ip
accepts_nested_attributes_for :ips, reject_if: :all_blank, allow_destroy: true

包::IP
belongs_to :ipable, :polymorphic => true, optional: true, inverse_of: :ip

我的 routes.rb 文件有:
namespace :package do
resources :ips
end

在我的组织展示中,我尝试使用以下命令呈现指向 package/ips/show.html.erb 的链接:
<%= link_to package_ips_path(@organisation) do %> 

我也尝试了以下(虽然我认为它是错误的):
<%= link_to package_ip_path(@organisation) do %> 

在这两种情况下,我都会收到一条错误消息:
uninitialized constant Package::IpsController

我不明白这个错误,因为当我进入我的 rails 控制台时,我可以看到有一个 Package::Ips 实例。
o = Organisation.first
o.ips
Package::Ip Load (1.3ms) SELECT "package_ips".* FROM "package_ips" WHERE "package_ips"."ipable_id" = $1 AND "package_ips"."ipable_type" = $2 [["ipable_id", 1], ["ipable_type", "Organisation"]]
=> #<ActiveRecord::Associations::CollectionProxy [#<Package::Ip id: 1, status: "Offered", classification: 0, identifier: "dasfdsfasd", description: nil, conditions: "asdfdsfsd", ipable_id: 1, ipable_type: "Organisation", created_at: "2016-11-02 21:05:36", updated_at: "2016-11-02 21:05:36", title: "test ip resource">]>

我的佣金路线 | grep ip 显示:
package_ip GET      /package/ips/:id(.:format)                                            package/ips#show

如何从组织展示页面链接到 Ip 展示 View ?

更新

我认为这个问题可能与有很多 ip 实例有关。

我尝试为 index.html.erb 创建 View 并尝试再次呈现链接。

这次错误说:
uninitialized constant Package::IpsController::Ip

错误消息的末尾有一个额外的“::Ip”。

我仍然不明白这个问题,但错误消息中突出显示了 Package::IpsController 的索引操作。该行动有:
 def index
@ips = Ip.all
# authorize @ips
end

最佳答案

您的类(class)名称周围缺少引号。它应该是这样的:

has_many :ips, as: :ipable, class_name: 'Package::Ip'

关于ruby-on-rails - rails : How to render path to namespaced file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40390234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com