我不认为我需要问这个,但这里有。我有一个应用程序,可以让您在书籍上签出、签入和设置提醒,例如,这是通过单击复选框来完成的。因此,如果 User1 例如签出 Book1,则该用户在查看时只能看到签入按钮。然后,如果同一用户签入该书,则签出按钮将重新出现
然后是用户 2,他们查看同一本书,理论上应该看不到用户 1 的提醒我按钮(当书重新签入时发送电子邮件)之外的任何按钮。
但是,在当前设置下,用户 2 仍然可以看到结帐按钮,但它已经被勾选为 true,这在状态方面是正确的,但我不希望显示该按钮。
这就是我到目前为止所拥有的(提醒我按钮的逻辑没有呈现任何内容)
<% unless current_user.id == @book.user_id %>
<%= render 'shared/checkout' %>
<% end %>
<% if current_user.id == @book.user_id %>
<%= render 'shared/checkin' %>
<% end %>
<% if @book.user_id != nil && current_user.id != @book.user_id %>
<% render 'shared/registerinterest' %>
<% end %>
此外,当用户在书中查看这是我传递给模型的内容时,我认为 nil 值可能会导致问题?
<%= form_for @book do |f| %>
<%= f.label :checked_out, "Check Book Back In" %>
<%= f.check_box :checked_out, {checked: false}, false %>
<%= f.hidden_field :user_id, :value => nil %>
<%= f.submit 'Check In' %>
<% end %>
似乎无法理解这种情况,所以如果有人可以解释为什么那会很棒,因为我可以从中学习
谢谢你
编辑
我现在基于 anser 为注册按钮尝试这个
<% if @book.checked_out == true && current_user.id != @book.user_id %>
<% render 'shared/registerinterest' %>
<% end %>
但是这不起作用?