【发布时间】:2012-01-24 22:35:43
【问题描述】:
我正在尝试将 JQuery Mobile 与 Rails 3 结合起来,我有一个联系人模型和一个联系人控制器。
JQuery Mobile 能够在正常视图之外创建一个适用于移动设备的对话框。我试图在从我的模型中删除数据时利用这一点。而不是通常的“你确定吗?” javascript 弹出窗口,我在控制器中创建了一个 delete.html.erb 视图和一个 delete 方法。
问题是,当 JQuery Mobile 对话框显示时,它作用于“更新”动作而不是“销毁”动作。(见下图)
我正在使用它来呈现删除视图:
# GET /contacts/1
def delete
@contact = Contact.find(params[:id])
render 'delete'
end
这里是销毁方法:
def destroy
contact = Contact.find(params[:id])
contact.destroy
end
这里是删除视图的代码:
<div data-role="header">
<h1>Delete</h1>
</div>
<div data-role="content">
<%= form_for(@contact, { :action => 'destroy', :id => @contact }) do %>
<%= "Delete #{@contact.first_name} #{@contact.last_name}?" %>
<%= submit_tag %>
<% end %>
</div>
这会导致渲染:
我认为问题的解决办法就在这里的地址栏:
如您所见,提交按钮文本由更新方法自动填充。删除视图附加到编辑视图,Rails 将其视为更新而不是销毁。
我的 routes.rb 文件非常简单:
resources :contacts
我假设这里需要改变一些东西,但我不确定是什么。和/或在使用 JQuery Mobile 方面可能需要更改某些内容。
非常感谢任何帮助!
【问题讨论】:
标签: jquery ruby-on-rails ruby-on-rails-3 jquery-mobile