这里是前提:在Rails 3中修改respond_to
我有一个叫做Rules的模型,它有一个相应的控制器和视图。 我希望用户能够从他们的仪表板创建一个新的规则,它具有独立的视图和控制器。
仪表板有三个标签所谓的“规则”,“规则集,以及‘游戏’。每个标签都有自己的部分,所以对规则我使用_rules.erb部分看起来像这样
<div id="dashboard-rules" class="dashboard-panel ui-nav-panel">
<%= button_to'Create A Rule', '#', id: "create-rule-btn", class: "btn btn-primary" %>
<div id="create-rule-form-container">
</div>
...
</div>
使用jQuery,我加载它是由规则控制,这样控制的新规则页面的内容...
$('#create-rule-btn').click (e) ->
e.preventDefault()
$('#create-rule-form-container').load('/rules/new.html .form-horizontal')
这只是加载从规则/ new.html形式。我的问题当我点击“保存规则”按钮时,它会重定向到/ rules URL,然后显示错误rs或说“规则保存成功”。我希望它不会重定向,并将错误显示在仪表板中...再次,不会重定向到/规则URL。
这是我的规则创建行动,我认为需要修改,我只是不知道如何:我
def create
@rule = Rule.new(params[:rule])
respond_to do |format|
if @rule.save
format.html { redirect_to @rule, notice: 'Rule was successfully created.' }
format.json { render json: @rule, status: :created, location: @rule }
else
format.html { redirect_to :controler => "dashboard"}
format.json { render json: @rule.errors, status: :unprocessable_entity }
end
end
end
知道我有respond_to代码是如何工作的摆弄,我只是不”不知道如何。
好吧任何JS,所以我从仪表板控制器中添加变量到规则创建规则控制器动作和使用您所提供的代码。重定向工作非常感谢!但是,由于它创建了一个新的HTTP请求并刷新回主仪表板索引,我失去了通过jQuery.load AJAX调用添加的表单。 我想也许你最后的建议可能是最好的。不知道该怎么去做。 – 2013-03-15 13:21:15
我已经添加了一个快速js解决方案。希望你可以找出其他的:) – jvnill 2013-03-15 13:26:33
嗯,我认为这是正确的轨道。它现在通过AJAX提交,但我没有收到任何错误或成功消息,也没有将数据保存到数据库。 – 2013-03-15 13:36:56