0

我的环境

  • 导轨 3.2.1
  • ruby 1.9.3p194(2012-04-20 修订版 35410)[x86_64-darwin11.4.0]
  • jquery-rails (2.0.2)
  • 回形针 (3.0.4)

我想在控制器中获得“提交”的价值。

<%= form_for @foo, :url => '/foo/edit/',:remote => true, :html => {:multipart => true}, :id => "peroform" do |f| %>
  <%= f.file_field :logo %>
  <%= f.submit "logo" %>
<% end %>

当我不选择任何文件时,我可以获得提交值。

Parameters: {"utf8"=>"✓", "authenticity_token"=>"****", "commit"=>"logo"}

但是我选择了一个文件,参数中的值被删除了。

  Parameters: 
    {"foo"=>{"logo"=>#<ActionDispatch::Http::UploadedFile:0x007fd2c0277e88 @original_filename="bar.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"foo[logo]\"; filename=\"bar.png\"\r\nContent-Type: image/png\r\n", @tempfile=#<File:/tmp/RackMultipart20120531-44915-r5kb52>>}, "utf8"=>"✓", "authenticity_token"=>"*", "remotipart_submitted"=>"true", "X-Requested-With"=>"IFrame", "X-Http-Accept"=>"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01"}

我怎样才能获得提交价值?

然后我想像这样用户多次提交。我想在推送“徽标提交”时只保存“徽标”,但我想在推送“全部提交”时保存“名称”和“徽标”。

<%= form_for @foo, :url => '/foo/edit/',:remote => true, :html => {:multipart => true}, :id => "peroform" do |f| %>
  <%= f.file_field :logo %>
  <%= f.submit "logo" %>

  <%= f.text_field :name %>
  <%= f.submit "all" %>
<% end %>

你对这个多重提交按钮有什么想法吗?

提前谢谢了。

4

1 回答 1

0

嗯...我认为这是一个错误,但您可以绑定事件处理程序以提交按钮,并在提交之前插入额外的参数(提交名称)。然后在基于提交参数的控制器中决定你想要保存的内容。

于 2012-05-31T10:22:58.680 回答