2011-09-12 29 views
0

我有这个问题它总是与提交的表单一样。 在更新订单提交按钮上调用update_limits操作。哪个应该触发动作update_order。Rails表单提交问题有两种形式

这是我的观点:

<h2>Movies</h2> 
<h3>List movies</h3> 
<%= form_tag(:action => 'update_limits' ,:id => params[:id]) %> 
<%= link_to 'create new movie', {:action => 'create',:id => params[:id]}, {:class => 'margin-left'} %> 
<div class="spacer">&nbsp;</div>  

Number of movies in reel: 
<span class="c1"> 
<% rr = 1..6 %> 
<%= select("limits", "reel_limit", rr) %> 
</span> 
Number of movies in archive: 
<span class="c1"> 
<% rr = 0..12 %> 
<%= select("limits", "archive_limit", rr) %> 
</span> 
<%= submit_tag %> 
<div class="spacer">&nbsp;</div>  
<%= form_tag(:controller => 'admin/photographers', :action => 'update_order' ,:id => params[:id]) %> 
<ul id='movielist'> 
<span class="header">name</span> 
<% 
n = 0 
while n < @items.length 
%> 
<li itemID='<%[email protected][n].id%>' <%= reel_color_class(n, @limits) %>> 
<% if @items[n]["image"] %> 
<%= image_tag("/photographer/image/#{@items[n].id}/#{@items[n]["image"]}", :size => "36x20") %> 
<% end %> 
<%[email protected][n].name.force_encoding("UTF-8") %> 
<span class='col2'> 
<%= link_to 'edit', {:action => "edit", :id => @items[n].id} %> 
<%= link_to("remove", {:action => "remove", :id => @items[n].id }, 
{:confirm => "Are your sure?"}) %> 
</span> 
</li> 
<% 
n = n + 1 
end 
%> 
</ul> 
<input type="hidden" name="neworder" id="neworder" value="" /> 
<input name="commit" type="submit" value="update order" onclick="neworder.value=(junkdrawer.inspectListOrderNew('movielist'))" /> 
<div class="spacer">&nbsp;</div> 
+0

请请*请*正确地缩进您的代码。阅读绝对是一团糟。通过使用适当的缩进,它也会使您更容易阅读。 –

回答

1

form_tag方法需要一个块,你不给它一个。你应该做这样的事情:

<%= form_tag(:action => 'update_limits' ,:id => params[:id]) do %> 
# form goes here 
<% end %> 

甚至更​​好,如果这是一个行事真实物体上,使用form_for标签:

<%= form_for(@object) do |f| %> 
# form_goes here 
<% end %> 

欲了解更多信息,请阅读Getting Started guide for Rails