【发布时间】:2014-06-13 20:29:25
【问题描述】:
使用 Rails 4 我有一个名为 Core 的引擎,其中包含我们正在使用的系统的业务规则和数据对象。这旨在精简并包含在几个不同的应用程序中。
我正在创建一个应用程序,其中将包含一些用于某些核心数据的特殊 CRUD 屏幕,但我不确定设置路由的最佳方式。
换句话说,我想为引擎模型创建视图和控制器在我的路由中不安装引擎。
但是,在运行rails g scaffold_controller core::rep 之后,我似乎无法加载 url 辅助方法。在我的 config/routes.rb 中:
namespace :core do
resources :reps
end
rake 路由返回:
Prefix Verb URI Pattern Controller#Action
core_reps GET /core/reps(.:format) core/reps#index
POST /core/reps(.:format) core/reps#create
new_core_rep GET /core/reps/new(.:format) core/reps#new
edit_core_rep GET /core/reps/:id/edit(.:format) core/reps#edit
core_rep GET /core/reps/:id(.:format) core/reps#show
PATCH /core/reps/:id(.:format) core/reps#update
PUT /core/reps/:id(.:format) core/reps#update
DELETE /core/reps/:id(.:format) core/reps#destroy
这看起来不错。 但是,在导航到 URL 时:/core/reps
Showing /app/views/core/reps/index.html.erb where line #14 raised:
undefined method `edit_core_rep_path' for #<#<Class:0x00000002adf578>:0x00000002adc3a0>
我认为这意味着 url_helpers 没有正确设置,并且我越来越怀疑我以错误的方式处理这个问题。
我有什么遗漏吗?我应该尝试在应用中扩展引擎控制器吗?
我可以将应用程序的助手与引擎的模型一起使用吗?还是我必须安装引擎?
我知道我可以rails g scaffold_controller rep 然后只是修补控制器以从引擎加载数据,但这似乎不太正确。
【问题讨论】:
标签: ruby-on-rails-4 rails-routing rails-engines