2011-04-07 4 views
2

J'ai écrit une application Rails 3 de base qui affiche un formulaire et un formulaire de téléchargement sur des URL spécifiques. Tout fonctionnait bien hier, mais maintenant je suis confronté à plusieurs problèmes qui nécessitent une réparation. Je vais essayer de décrire chaque problème du mieux que je peux. La raison pour laquelle je les combine, c'est parce que je sens qu'ils sont tous liés et m'empêchent de finir ma tâche.ArgumentError sur les demandes d'application

1. Impossible d'exécuter l'application en mode développement Pour une raison inconnue, je ne peux pas obtenir l'application de fonctionner en mode développement. Actuellement, j'ai écrasé le fichier production.rb de l'environnement avec les paramètres de l'environnement de développement pour obtenir des stacktraces actuall.

J'ai ajouté le paramètre de production RailsEnv à mon paramètre VirtualHost dans apache2, mais cela ne semble pas faire de différence. Les paramètres ENV ne sont pas non plus variables en production.

2. ArgumentError sur tous les appels Quelle que soit l'appelle, je semble faire, de ce message d'erreur. Le fichier journal me dit ce qui suit:

GET Started "/" pour 192.168.33.82 au trajet principal Aujourd'hui 07 00:54:48 -0700 2011

ArgumentError (mauvais nombre de arguments (1 pour 0)):

Rendus /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1,0 ms) a rendu /usr /lib/ruby/gems/1.8/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (4.1ms) Rendus /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb dans les sauvetages/mise en page (8.4ms)

Cela ne signifie rien pour moi vraiment. Je n'ai aucune idée de ce qui ne va pas. J'ai actuellement un seul contrôleur qui ressemble à ceci:

class SearchEngineController < ApplicationController 
    def upload 
    end 

    def search 
    @rows = nil 
    end 

    # This function will receive the query string from the search form and perform a search on the 
    # F.I.S.E index to find any matching results 
    def query 
    index = Ferret::Index::Index.new :path => "/public/F.I.S.E", :default_field => 'content' 
    @rows = Array.New 
    index.search_each "content|title:#{params[:query]}" do |id,score, title| 
     @rows << {:id => id, :score => score, :title => title} 
    end 

    render :search 
    end 

    # This function will receive the file uploaded by the user and process it into the 
    # F.I.S.E for searching on keywords and synonims 
    def process 
    index = Ferret::Index::Index.new :path => "public/F.I.S.E", :default_field => 'content' 
    file = File.open params[:file], "r" 
    xml = REXML::Document.new file 
    filename = params[:file] 
    title = xml.root.elements['//body/title/text()'] 
    content = xml.root.elements['normalize-space(//body)'] 
    index << { :filename => filename, :title => title, :content => content} 
    file.close 
    FileUtils.rm file 
    end 
end 

L'acheminement de ma demande a la configuration suivante: Encore une fois cela est assez basique et peut probablement faire mieux.

Roularta::Application.routes.draw do 
    # define all the url paths we support 
    match '/upload' => 'search_engine#upload', :via => :get 
    match '/process' => 'search_engine#process', :via => :post 

    # redirect the root of the application to the search page 
    root :to => 'search_engine#search' 

    # redirect all incoming requests to the query view of the search engine 
    match '/:controller(/:action(/:id))' => 'search_engine#search' 

end 

Si quelqu'un peut repérer ce qui ne va pas et pourquoi cette application ne parvient pas, s'il vous plaît laissez-moi savoir. Si nécessaire, je peux éditer ce navigateur et inclure des fichiers supplémentaires qui pourraient être nécessaires pour résoudre ce problème.

EDIT j'ai réussi à aller plus loin en renommant l'une des fonctions du contrôleur. J'ai renommé search en create et maintenant je récupère les erreurs HAML. J'ai peut-être utilisé un mot-clé ...?

Répondre

0

woot, a finalement trouvé les solutions ....

Semble je mots-clés pour définir mes actions, et Rails n'a pas comme ça. Ce problème résolu 2.

Numéro 1 a obtenu résolu en ajoutant Rails.env 'développement' = au fichier environment.rb