【发布时间】:2015-03-14 06:40:31
【问题描述】:
我遇到了最奇怪的问题!在我的 RoR 应用程序中,我有一个 .each 循环。每次迭代都有一个用于该特定迭代的 link_to “删除”:
- @evints.each do |e|
.inteventimg
= link_to e.event.name, e.event
= e.id
%br
- if e.event.images.exists?
= image_tag(e.event.images.find_by(:prime => true).location.full.url)
%br
- if current_user
= link_to "Delete #{e.id}", e, :method => :delete, data: {:confirm => 'Are you sure?'}
Evint 是一个has_many 中的一个连接表,通过Interest 和Event 之间的关系;在显示下的兴趣控制器中,我将@evints 定义为@interest.evints。
一切正常——显示正确的图像,正确的 e.id 出现在 e.name 旁边和“删除”链接本身中;但始终如一地,页面上的第一个 evint 被删除,而不是单击“删除”的那个。我想不通。 . .有人有什么想法吗?
编辑:这是 Evint 控制器的删除代码:
def destroy
@evint = Evint.find_by(params[:id])
authorize @evint
if @evint.destroy
flash[:notice] = "Your evint has been removed."
redirect_to :back
else
flash[:error] = "Evint couldn't be deleted. Please try again."
redirect_to :back
end
结束
谢谢。
【问题讨论】:
-
确认调用了正确的控制器#action。而且,你能发布删除操作代码吗?
-
我已经在上面添加了控制器动作代码。
标签: ruby-on-rails rest iteration haml link-to