shallow route root_path rails index create concern and ruby-on-rails ruby-on-rails-3 namespaces controller subdomain

ruby-on-rails - route - ruby create controller



Rieles: dividir una Ășnica base de datos entre mĂșltiples subdominios (1)

En su application_controller, simplemente:

class ApplicationController < ActionController::Base before_filter :current_account helper_method :current_account def current_account @account ||= Account.find_by_domain(request.subdomain) end end

Entonces, en todos lados:

class WidgetsController < ApplicationController def index @widgets = current_account.widgets.paginate(:page=>params[:page]) end def show @widget = current_account.widgets.find(params[:id]) end def create @widget = current_account.widgets.build(params[:widget]) if @widget.save ... end end end

Al @account todo en @account , mantiene separados los datos en los subdominios.

También puede usar current_account como ayudante en sus vistas.

Soy relativamente nuevo en Rails, y esta es mi situación:

Estoy construyendo una aplicación de administración de inventario con rieles para ayudar a tres sucursales separadas de una compañía a administrar su propio inventario de productos.

Cada una de estas tres ramas realiza un seguimiento de los mismos productos, utiliza los mismos modelos de datos, pero se gestionan por separado. Mi plan es construir una sola aplicación usando una sola base de datos, pero una que rastrea el inventario en las tres ramas.

Mi plan es tener algo como esto:

branch1.inventoryapp.com

branch2.inventoryapp.com

branch3.inventoryapp.com

Cada subdominio llevará a la misma interfaz con las mismas funciones y esencialmente las mismas vistas. La única diferencia será el contenido real de su inventario, que será una lista de los productos que están físicamente en esa sucursal en ese momento.

¿Seré capaz de hacer esto con el enrutamiento del subdominio Rails?

¿Debería tener controladores separados para cada rama?

¿Debo usar espacios de nombres de controlador? Recursos anidados?

¡Gracias por adelantado!