8

いくつかの標準操作でパーシャルを呼び出したいと思います。私はパーシャルを呼び出すためにこのメソッドを使用しています:

 %li= link_to 'Delete Event', 'javascript:void(0);', :class => 'alert tiny button', :data => {'reveal-id' => :RevealDelete}
= render 'layouts/reveal_delete', :item => event_display(@event.event), :resource => @event

次に、私のパーシャルでは、

#RevealDelete.reveal-modal


 %a.close-reveal-modal ×
  %h3= "Delete #{item}"
  %p Are you sure you want to delete this?
  =link_to "Delete #{item}", resource, :method => :delete, :remote => :true, :confirm => resource, :class => 'button close-reveal-modal'
  %a.button.alert.close-reveal-modal Cancel

どうすればこれを次のように持つことができますか:

link_to 'Delete', '#', :partial => 'layouts/delete', :remote => :true? 

ページがロードされたときではなく、クリックされたときにのみその部分をレンダリングするようにするには?

4

3 に答える 3

30

次のようなJavaScriptでそれを行うことができます:

<%= link_to "Delete", delete_content_path, :remote => true %>

対応するコントローラーのアクションは次のようになります。

私のコントローラー:

def delete_content
  respond_to do |format|               
    format.js
  end        
end 

次にdelete_content.js.erb、リンクの正しいディレクトリ内に作成し、そこに次のコードを配置します。

delete_content.js.erb

$('#div_id').html("<%= render :partial => 'my_partial' %>");

次に、あなたの見解で:

delete_content.html.erb

<div id = "div_id">
#this div is html div that will render your partial

</div>

部分的な_my_partial.html.erbを同じフォルダーに入れることを忘れないでください。

于 2013-03-02T13:15:57.843 に答える
0

ビューでこれを行います:

link_to "Delete #{item}", '/model/confirm_deletion', :method => :delete, :remote => true #add the class and extra attributes if neeeded

あなたのコントローラーで

def confirm_deletion
end

jsのconfirm_deletionアクションにビューを追加します

#RevealDelete.reveal-modal
  %a.close-reveal-modal ×
  %h3= "Delete #{item}"
  %p Are you sure you want to delete this?
  =link_to "Delete #{item}", resource, :method => :delete, :remote => :true, :confirm => resource, :class => 'button close-reveal-modal'
  %a.button.alert.close-reveal-modal Cancel

:javascript
  $(body).append($('#RevealDelete'));

そのカスタム確認ダイアログをロードするための ajax リクエストを作成します。body.append を使用する代わりに、ダイアログを挿入するラッパーを追加することをお勧めします。

于 2013-03-02T13:14:03.840 に答える