我正在尝试实现一个系统,为了跟踪项目进度,你可以用各种版本标记它(比如Stack Overflow上的标记功能。我跟随Rails 3书中的行动项目,Ticketee 。)我正在尝试实现从票证中删除标签的异步请求,但由于某种原因,它没有正确删除。这是我的代码:
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”链接时,它会刷新页面,但实际上并没有将其删除。知道为什么吗?我发布了我认为相关的代码...如果您需要更多,请告诉我。
答案 0 :(得分:1)
你有rails_ujs吗? rails_ujs是一个用link做的很酷的东西,比如link_to和remote。顺便说一下,它的
= link_to“x”,url,:remote =&gt;真正的“
请参阅http://guides.rubyonrails.org/getting_started.html#listing-all-posts