gpt4 book ai didi

ruby-on-rails - 应用程序请求的 ArgumentError

转载 作者:行者123 更新时间:2023-12-04 18:34:51 25 4
gpt4 key购买 nike

我编写了一个基本的 Rails 3 应用程序,它在特定的 URL 上显示一个表单和一个上传表单。昨天一切正常,但现在我遇到了几个需要修复的问题。我会尽量描述每个问题。我将它们组合在一起的原因是因为我觉得它们都是相关的并且阻止我完成我的任务。

1. 无法在开发模式下运行应用程序
由于某些未知原因,我无法让应用程序在开发模式下运行。目前,我已经使用开发环境中的设置覆盖了环境中的 production.rb 文件,以获取实际的堆栈跟踪。

我已将 RailsEnv 生产设置添加到我在 apache2 中的 VirtualHost 设置中,但似乎没有什么区别。也不会将 ENV 变量设置为生产。

2. 所有调用的 ArgumentError
无论我打什么电话,都会导致此错误消息。日志文件告诉我以下内容:

Started GET "/" for 192.168.33.82 at Thu Apr 07 00:54:48 -0700 2011

ArgumentError (wrong number of arguments (1 for 0)):

Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.0ms) Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (4.1ms) Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (8.4ms)



这对我来说真的没有任何意义。我不知道出了什么问题。我目前只有一个 Controller ,如下所示:
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

我的应用程序的路由具有以下设置: 同样,这都是非常基本的,可能可以做得更好。
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

如果有人能发现问题所在以及此应用程序失败的原因,请告诉我。如果需要,我可以编辑此 awnser 并包含解决此问题可能需要的其他文件。

编辑
通过重命名 Controller 上的一项功能,我设法走得更远。我将搜索重命名为创建,现在我得到了 HAML 错误。也许我使用了关键字...?

最佳答案

呜呜呜,终于找到解决办法了......

似乎我使用关键字来定义我的操作,Rails 不喜欢这样。这解决了问题 2。

通过添加 解决了问题 1 Rails.env='开发'到 environment.rb 文件

关于ruby-on-rails - 应用程序请求的 ArgumentError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5577801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com