説明
次の作業コードがあります。
リンクのリストで表示:
<%= div_for feed do %> <%= link_to feed.name, { :controller => 'Feeds', :action => "get_posts", :id => feed.id }, :remote => true %> <% end %>
ユーザーがリンクをクリックしたときに動作するコントローラー:
def get_posts @result = Feed.find(params[:id]).generate_html_table respond_to do | format | format.js {render :layout => false} end end
HTML を生成するメソッド:
def generate_html_table r = "<table>" self.posts.order("published desc").each { |p| link = '<a href=' + p.link + '>' + p.title + '</a>' date = ' ' + p.published.to_s r += '<tr><td>' + link + '</td><td>' + date + '</td></tr>' } r + '</table>' end
そして get_posts.js.erb:
$( "#in" ).html("<%= raw @result %>");
ユーザーがリンクをクリックすると、generate_html_table が #id div に挿入される HTML コードを生成します。
質問
generate_html_table をパーシャルで変更したい。どうすれば入手できますか?
どうやって試したんだ
ファイル views/feeds/_posts.html.erb を作成しました:
some static text
get_posts.js.erb を次のように編集しました。
$( "#in" ).html("<%= escape_javascript(render :partial => 'posts' )%>");
しかし今でも、静的テキストでは機能しません。