2010-06-29 74 views
0

我有下面的代码在我的控制器Rails的多张贴问题

<% form_for @picture, :picture, :url=>pictures_url, :html => { :multipart => true } do | form | %> 
    <%=form.file_field :image%> 
    <%=submit_tag 'Save'%> 
<%end%> 

当我打开它提交到以下控制器

class PicturesController < ApplicationController 
    def create 
    render :text=>1 
    end 
end 

:多=>真的,我得到以下错误但是,如果我不使用多部分,那么它一切正常?

/!\ FAILSAFE /!\ Tue Jun 29 09:59:47 +0100 2010 
    Status: 500 Internal Server Error 
    wrong number of arguments (1 for 0) 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/utils.rb:338:in `initi 
ze' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/utils.rb:338:in `new' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/utils.rb:338:in `parse 
ltipart' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/utils.rb:323:in `loop' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/utils.rb:323:in `parse 
ltipart' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/request.rb:133:in `POS 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:15:i 
call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/par 
_parser.rb:15:in `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ses 
n/cookie_store.rb:93:in `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/fai 
fe.rb:26:in `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `synchro 
e' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dis 
cher.rb:114:in `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/rel 
er.rb:34:in `run' 
    C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/dis 
cher.rb:108:in `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/rack/static.rb:31:in 
all' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:46:in `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `each' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/rack/log_tailer.rb:1 
n `call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/content_length.rb:13:i 
call' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:50: 
`service' 
    C:/Ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' 
    C:/Ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' 
    C:/Ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' 
    C:/Ruby/lib/ruby/1.8/webrick/server.rb:162:in `start' 
    C:/Ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' 
    C:/Ruby/lib/ruby/1.8/webrick/server.rb:95:in `start' 
    C:/Ruby/lib/ruby/1.8/webrick/server.rb:92:in `each' 
    C:/Ruby/lib/ruby/1.8/webrick/server.rb:92:in `start' 
    C:/Ruby/lib/ruby/1.8/webrick/server.rb:23:in `start' 
    C:/Ruby/lib/ruby/1.8/webrick/server.rb:82:in `start' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:14: 
`run' 
    C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:111 
    C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_orig 
l_require' 
    C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
    script/server:3 

任何建议,对不起,如果这是一个新手的错误,但我刚刚开始学习rails。

感谢

安迪

+0

这似乎是在我的Rails应用程序的奇怪的问题,如果我再创建一个新的这个消失。很奇怪。感谢所有人的帮助。 – 2010-06-30 08:09:26

回答

0

如果你包装一下你form_for物体周围的(在你的情况,@picture),您无需显式地指定模式(:picture)或:url

也许下面将做的伎俩

<% form_for @picture, :html => { :multipart => true } do |f| %> 
    ... 
<% end %> 
+0

不错的尝试,但删除符号和网址没有区别。很好的提示知道虽然 – 2010-06-29 09:01:14

0

尝试:

<% form_for @picture, :html => { :multipart => true } do | form | %> 
    <%=form.file_field :image%> 
    <%=submit_tag 'Save'%> 
<%end%> 

API适用于这样的问题很好的例子;)

+0

不错的尝试,但删除符号和网址没有区别。好的提示知道虽然 – 2010-06-29 09:01:37

+0

你想创建一个新的图片吗?尝试 <%form_for(Picture.new),:html => {:multipart => true} do | f | %> ... <% end %> 再次,从文档。不知道还有什么可能是问题,代码本身看起来不错 – DrColossos 2010-06-29 10:12:38

+0

是的,我试图创建一个新的图片。你的建议没有修复它,我有一个可怕的感觉,我碰到了轨道上的错误。 Ouch – 2010-06-29 10:16:12

1

参考例子给出here

<% form_for :picture, @picture, :url=>pictures_url, :html => { :multipart => true } do | form | %> 
    <%=form.file_field :image%> 
    <%=submit_tag 'Save'%> 
<%end%> 

编辑

试举pictures_url如下

​​
+0

不错的尝试,但改变顺序没有区别。 – 2010-06-29 09:00:47

+0

@Andrew: - 检查我编辑的答案。 – Salil 2010-06-29 09:54:41

+0

也参考http://stackoverflow.com/questions/1508815/error-wrong-number-of-arguments-0-for-1 – Salil 2010-06-29 09:59:19