1

scaffold を行うと、index.html.erb で自動的に破棄アクションが行われます。
このアクションを _form.html.erb に移動したい場合はどうすればよいですか? そして、新しいモード(example.com/books/new)ではなく
、編集モード(example.com/books/1212/edit)でのみ表示されるようにしたいと思います

4

2 に答える 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")

コントローラーでは、パラメーターを として取得し:delete_flag、そこから次のことができます

 Parameters: {"utf8"=>"✓", "authenticity_token"=>"5oWQU+w0jVCQlw8wLvCyKajbBSKpK2sv6RMkSGTE2H8=", "job"=>{"delete_flag"=>"1"}, "commit"=>"Delete"}

HTH

于 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 に答える