Dojo Toolkit の TitlePane を使用してこれを行うことができます。おそらく、jQueryUI を使用した同様のウィジェットがあります。
Dojo Toolkit のバージョンとしか話せません
あなたは次のようなことをします:
<div data-dojo-type="dijit/TitlePane" data-dojo-props="href: '/blah', title: '<%= submission.title %>', open: false">
CDN からロードされた dojo の軽量使用のために、アプリケーション レイアウトにこれを含めることができます。
<script data-dojo-config="async: true, parseOnLoad: true"></script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/dojo.js"></script>
TitlePane は、展開されたときに href パラメータに提供されたコンテンツを自動ロードするように接続されています。
これはレール ソリューションそのものではありませんが、代替手段として使用できます。
Rails ソリューションの場合、パーシャルをレンダリングするコントローラーへの AJAX 呼び出しを使用するだけです。を使用して接続することもできます
def blah
@submission = Submission.find(...)
respond_to do |format|
format.html # default render
format.js # js behavior
end
end
次に、blah.html.erb
<%= render partial: 'submission/submission', object: @submission %>
部分的に
<div id='submission-<%= submission.id %>'>
<div id='submission-<%= submission.id %>-title'><%= link_to(submission.title, 'blah/blah', remote: true) %></div>
<div id='submission-<%= submission.id %>-content'></div>
</div>
および blah.js.erb
$.get('/submission/content', function(data) { $('#submission-<%= @submission.id %>-content').html(data) } );
および route を使用した submits_controller へのエントリ
def content
@submission = Submission.find(...)
render text: @submission.content
end
これはおそらく正確な解決策ではありませんが、うまくいけば、正しい道を歩むことができます.