选项卡不在jQuery UI选项卡中重定向

时间:2011-03-26 13:33:16

标签: jquery ruby-on-rails ruby-on-rails-3 jquery-ui jquery-ui-tabs

请在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。

任何帮助将不胜感激。提前谢谢。

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