这是前提:
我有一个名为 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')
这仅从 rules/new.html 加载表单。我的问题是,当我单击“保存规则”按钮时,它会重定向到 /rules URL。然后要么显示错误,要么说“规则已成功保存”。我希望它不要重定向并在仪表板中显示错误......再次,不要重定向到 /rules 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 是如何工作的,我只是不知道如何。