【发布时间】:2013-08-16 14:37:28
【问题描述】:
我正在发布新的“推文”,使用 jquery 和 ajax,我可以在不刷新页面的情况下显示新发布的推文。但是在我的视图模板中,我有一个if statement,它检查它是否是current_user,如果是,则显示删除按钮。
但是 Ajax 不读取 if statement 并且不显示删除按钮。如果我刷新页面或删除 if 语句,则会显示删除按钮。这违背了目的,因为该按钮也显示在其他用户的个人资料中。
这是我的看法:
<ul class="tweets>
<li>
<span><%= tweet.content %></span><br>
<% if current_user?(@user)%>
<%= link_to "Delete" tweet, method: :delete, data: { confirm: "You sure?" } %>
<%end%>
</li>
</ul>
我的 create.js.erb:$('.tweets').prepend('<%= j render(@tweet)%>')
【问题讨论】:
-
您真的希望 ajax 请求重新读取您的原始视图吗?除非您显示部分推文?
-
在您的部分中,尝试调试 current_user 并查看它是否实际被发送。就在你的内容块的末尾放一个“ID:#{current_user.id}”或类似的东西来查看输出。
-
如果它确实读取了current_user,那么可能if语句正在执行为假?这很奇怪,因为它可以重新加载。也许尝试使用不同的 if 语法? (这只是一个随机的猜测/尝试一下不会有什么坏处)。也许试试“如果 current_user.id == tweet.user.id”?
-
@apneadiving,感谢您富有洞察力的意见 :)
标签: ruby-on-rails ajax ruby-on-rails-3 jquery