如果我做脚手架,它会自动在 index.html.erb 中进行销毁操作。
如果我想将此操作移至 _form.html.erb 怎么办?
而且我想让它只在编辑模式(example.com/books/1212/edit)
而不是在新模式(example.com/books/new)期间出现
问问题
128 次
2 回答
1
我认为这会对你有所帮助
模型
class Job < ActiveRecord::Base
attr_accessible :delete_flag #with other attributes
attr_accessor :delete_flag
end
*在你看来 (_form)*
<%= form_for(@job) do |f| %>
#other code
<%= f.text_field :delete_flag%>
<div class="actions">
<%= f.submit %>
<%= f.submit "Delete",{:class => "delete_button"} %>
</div>
<% end %>
咖啡脚本
jQuery ->
$('#new_job').submit ->
#capture your delete button click
$('#job_delete_flag').val("1")
在您的控制器中,您将获得参数 as :delete_flag
,并且从那里您可以
Parameters: {"utf8"=>"✓", "authenticity_token"=>"5oWQU+w0jVCQlw8wLvCyKajbBSKpK2sv6RMkSGTE2H8=", "job"=>{"delete_flag"=>"1"}, "commit"=>"Delete"}
高温高压
于 2012-12-19T09:11:23.293 回答
0
这是可能的,但请确保当您单击删除按钮时,它不会提交表单提交操作。
您可以考虑使用:remote => true
删除链接,您可以使用以下方法检查记录是新的还是现有的:
<Object>.new_record?
例如:如果我有一个名为 Job 的模型
Job.first.new_record? #=> false
Job.new.new_record? #=> true
例如:类似(未测试:D,只是为了给你一个想法)
<%= form_for(@job) do |f| %>
#your form content
<%= f.submit %>
<%= (link_to 'Destroy', @job, :remote => true, method: :delete, data: { confirm: 'Are you sure?' }) unless @job.new_record? %>
<% end %>
于 2012-12-19T06:02:26.590 回答