J'essaie de déployer mon application RoR. Il semble fonctionner correctement sur ma machine de développement lorsque RAILS_ENV est configuré pour le développement. Cependant, quand je l'ai mis sur le serveur de production et mettez-le en mode de production, je reçois l'erreur suivante après avoir navigué à la page de démarrage:Erreur view_paths liquide
=> Booting Mongrel
=> Rails 2.3.8 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Processing PagesController#show (for 173.79.8.203 at 2010-08-09 20:17:21) [GET]
Parameters: {"slug"=>[], "action"=>"show", "controller"=>"pages"}
NoMethodError (undefined method `view_paths' for #<Liquid::Template:0x7fc6f8b5f8a8>):
Processing ApplicationController#show (for 173.79.8.203 at 2010-08-09 20:17:21) [GET]
Parameters: {"slug"=>[], "action"=>"show", "controller"=>"pages"}
NoMethodError (undefined method `view_paths' for #<Liquid::Template:0x7fc6f8b5f8a8>):
Rendering /home/flavorpulse/sites/public.flavorpulse.com/public/500.html (500 Internal Server Error)
La partie étrange est que dans mon environnement de développement, je reçois une sortie similaire mais je ne suis pas redirigé vers 500.html. La sortie similaire sur ma machine dev est:
=> Booting Mongrel
=> Rails 2.3.8 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
SQL (0.1ms) SET NAMES 'utf8'
SQL (0.1ms) SET SQL_AUTO_IS_NULL=0
Processing PagesController#show (for 127.0.0.1 at 2010-08-09 16:07:50) [GET]
Parameters: {"slug"=>[], "action"=>"show", "controller"=>"pages"}
Domain Columns (1.4ms) SHOW FIELDS FROM `domains`
Domain Load (45.8ms) SELECT * FROM `domains` WHERE (`domains`.`domain_name` = 'localhost') LIMIT 1
Account Columns (1.6ms) SHOW FIELDS FROM `accounts`
Account Load (0.8ms) SELECT * FROM `accounts` WHERE (`accounts`.`id` = 1)
CACHE (0.0ms) SELECT * FROM `accounts` WHERE (`accounts`.`id` = 1)
Theme Columns (2.0ms) SHOW FIELDS FROM `themes`
Theme Load (0.8ms) SELECT * FROM `themes` WHERE (`themes`.`id` = 1)
PageTemplate Columns (1.4ms) SHOW FIELDS FROM `page_templates`
PageTemplate Load (0.3ms) SELECT * FROM `page_templates` WHERE (`page_templates`.`name` = 'index') AND (`page_templates`.theme_id = 1) LIMIT 1
CACHE (0.0ms) SELECT * FROM `domains` WHERE (`domains`.`domain_name` = 'localhost') LIMIT 1
CACHE (0.0ms) SELECT * FROM `accounts` WHERE (`accounts`.`id` = 1)
CACHE (0.0ms) SELECT * FROM `accounts` WHERE (`accounts`.`id` = 1)
CACHE (0.0ms) SELECT * FROM `themes` WHERE (`themes`.`id` = 1)
PageLayout Load (0.4ms) SELECT * FROM `page_layouts` WHERE (`page_layouts`.theme_id = 1) LIMIT 1
PageLayout Columns (1.4ms) SHOW FIELDS FROM `page_layouts`
CACHE (0.0ms) SELECT * FROM `domains` WHERE (`domains`.`domain_name` = 'localhost') LIMIT 1
CACHE (0.0ms) SELECT * FROM `accounts` WHERE (`accounts`.`id` = 1)
CACHE (0.0ms) SELECT * FROM `accounts` WHERE (`accounts`.`id` = 1)
Page Load (0.3ms) SELECT * FROM `pages` WHERE (`pages`.`show_in_navigation` = 1) AND (`pages`.account_id = 1)
NoMethodError (undefined method `view_paths' for #<Liquid::Template:0x10337ef98>):
Rendering rescues/layout (internal_server_error)
Mais vous pouvez voir la différence majeure est que sur le serveur de production, il ne ressemble pas à tous les appels sont faits à la base de données.
Mise à jour 2010/08/09 @ 17:41 EST:
Voici mon code de contrôleur qui montre que je ne fais rien avec une variable d'instance nommée modèle:
class PagesController < ApplicationController
def show
if params[:slug].blank?
# show homepage
page = current_account.theme.page_templates.find_by_name("index")
else
# show the right page
#TODO: This doesn't support slashes in the slug. This URL will make this barf: about/us/us/us/us/about-us.html
page = Page.first(:conditions => ["account_id = :account_id AND slug = :slug", { :account_id => current_account.id, :slug => params[:slug] }])
end
if page.nil?
#TODO: Render a better 404 page.
content = "4oh4 - File Not Found"
else
content = page.content
end
assigns = {
}
render_page(content, assigns)
end
end
j'avais vu que l'affichage mais je ne suis pas définir une variable d'instance (ou une variable modèle nommé à tout niveau de portée). J'ai mis à jour la question pour montrer mon code de contrôleur. –