プロジェクトの進捗状況を追跡するために、さまざまなバージョンのタグを付けることができるシステムを実装しようとしています(Stack Overflowのタグ機能など)。私はチケットからタグを削除する非同期要求を実装しようとしていますが、何らかの理由でそれが正しく削除されていません。ここに私のコードは次のとおりです。Javascript/jQueryでレール3のプロジェクトの要素が削除されない
routes.html.erb
resources :tickets do
resources :comments
resources :tags do
member do
delete :remove
end
end
end
tags_controller.rb
def remove
@ticket = Ticket.find(params[:ticket_id])
if can?(:tag, @ticket.project) || current_user.admin?
@tag = Tag.find(params[:id])
@ticket.tags -= [@tag]
@ticket.save
render :nothing => true
end
end
ビュー/タグ/ remove.js.erb
$('#tag-<%= @tag.name.parameterize %>').remove();
ビュー/タグ/_tag.html.erb
<span class='tag' id='tag-<%= tag.name.parameterize %>'>
<% if can?(:tag, @ticket.project) || current_user.admin? %>
<%= link_to "x",
:remote => true,
:url => remove_ticket_tag_path(@ticket, tag),
:method => :delete,
:html => { :id => "delete-#{tag.name.parameterize}" } %>
<% end %>
<%= tag.name %>
</span>
「x」リンクをクリックするとページが更新されますが、実際には削除されません。どんな考え?私は関連性があると思われるコードを投稿しました。もっと必要な場合は教えてください。
おかげで、私はrails_ujsを含めて約行くにはどうすればよいという構文にそれを変更するを参照してください。 ? – ruevaughn
javascript/application.jsファイルに// jquery_ujsが必要です – ruevaughn
= link_to "x"、url::remote => true "という構文が修正されました。どうもありがとうございました – ruevaughn