Я только начал с рельсов, и до сих пор я был очень доволен этим, но есть одна вещь, которую я не могу понять.Пространства имён и модельные пути рельсов
У меня есть несколько моделей ActiveRecords в пространстве имен «Монитор», и у меня есть некоторые контроллеры в «Зарезервированном пространстве имен». Я хочу добиться того, что я могу использовать модели с именами в моих настройках контроллеров/форм.
Я получил это:
/config/routes.rb
namespace :settings do
resources :queues, :channels
end
/app/controllers/settings/queus_controller.rb
class Settings::QueuesController < ApplicationController
def new
@queue = Monitor::Queue.new()
render 'form', :layout => false
end
def create
@queue = Monitor::Queue.new(post_params)
if (@queue.save)
@status = 'added'
render 'success'
else
render 'form', :layout => false
end
end
def edit
@queue = Monitor::Queue.find(params[:id])
render 'form', :layout => false
end
...
end
/app/models/monitor/queue.rb
module Monitor
class Queue < ActiveRecord::Base
end
end
/app/views/settings/form.html.erb
<%= form_for @queue do |f| %>
...
<% end %>
Теперь Rails жалуется отсутствующего метода: monitor_queues_path
или Rails генерирует путь /monitor/queues
вместо /settings/queues(:new/edit)
.
Что мне здесь не хватает?
Нет, я просто с помощью пространства имен, чтобы обеспечить правильные пути. @settings - это не объект или что-то такое. –