请在jquery ui tab中帮助使用rails 3表单。
这是jquery选项卡中的view(:controller => "pages", :action => "board")
和表单(表单位于第二个选项卡中)
<div id="tabs">
<ul>
<li><a href="#tabs-1">Information:</a></li>
<li><a href="#tabs-2">Form:</a></li>
</ul>
<div id="tabs-1">
<p>info</p>
</div>
<div id="tabs-2">
<% if @message.errors.any? %>
<% @message.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
<% end %>
<%= form_tag(:controller => "messages", :action => "create") do %>
<%= label(:message, "Message:") %>
<%= text_field_tag(:message) %>
<%= submit_tag("Create Message") %>
<% end %>
</div>
</div>
在我的控制器中我有:
def board
@message = Message.find(:first, :conditions => ["id = ?", params[:message]])
end
def create
@message = Message.new(params[:message])
if @message.save
redirect_to(:controller => "pages", :action => "home")
else
redirect_to(:controller => "pages", :action => "board", :id => "tabs-2", :message => @message.id)
end
我有以下问题:
如果表单参数不符合模型要求,它应该重定向到tabs-2并呈现参数,而不是重定向到tabs-1。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:1)
您需要在初始化标签时在jquery中定义所选标签:
$( "#tabs" ).tabs({ selected: $("#tabs").data("selected") });
在您看来:
<div id="tabs" data-selected="<%= params[:selected] || 1 %>">
...
</div>
在您的控制器中:
if @message.save
redirect_to(:controller => "pages", :action => "home" )
else
redirect_to(:controller => "pages", :action => "board", :selected => "2", :message => @message.id)
end