我想了解如何在我的Rails 5应用程序中使用命名空间文件夹。Rails:如何呈现命名空间文件的路径
我有机构和Package_ips模型。包是我用来收集不同类型资产的文件夹的名称。 IP是嵌套资产之一。
的关联是:
组织
has_many :ips, as: :ipable, class_name: Package::Ip
accepts_nested_attributes_for :ips, reject_if: :all_blank, allow_destroy: true
套票:叶
belongs_to :ipable, :polymorphic => true, optional: true, inverse_of: :ip
我的routes.rb文件有:
namespace :package do
resources :ips
end
在我的组织节目,我试图呈现一个链接到包/ IPS/show.html.erb有:
<%= link_to package_ips_path(@organisation) do %>
我也曾尝试以下(虽然我认为它错了):
<%= link_to package_ip_path(@organisation) do %>
在这两种情况下,我得到一个错误,指出:
uninitialized constant Package::IpsController
,因为当我进入我的Rails控制台我不明白这个错误,我可以看到,有套票: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显示视图?
UPDATE
我觉得这个问题可能有一些做有这许多人的IP实例。
我试着制作一个index.html.erb的视图,并试图再次渲染链接。
这一次的错误说:
uninitialized constant Package::IpsController::Ip
有一个额外的“叶::”上的错误消息的结束。
我仍然不明白问题,但Package :: IpsController的索引操作在错误消息中突出显示。该行为有:
def index
@ips = Ip.all
# authorize @ips
end
感谢肖恩。我尝试过 - 但它不会改变错误。 – Mel
对不起,我误解了错误。错误不是关于你的模型,而是关于控制器。你有'app/controllers/package/ips_controller.rb'定义了吗? –
是的,它从这行开始:class Package :: IpsController
Mel