Ruby on rails 如果当前用户以前提交过,是否要禁用“提交”按钮
因此,我试图使我的提交按钮禁用,如果你已经提交了表单 我在您提交时存储您当前的_user.id。如果您再试一次,您会遇到一个已禁用的提交按钮 我一直试图用if-else语句来写这篇文章,但它太笨拙了,不起作用 这就是我尝试过的:Ruby on rails 如果当前用户以前提交过,是否要禁用“提交”按钮,ruby-on-rails,Ruby On Rails,因此,我试图使我的提交按钮禁用,如果你已经提交了表单 我在您提交时存储您当前的_user.id。如果您再试一次,您会遇到一个已禁用的提交按钮 我一直试图用if-else语句来写这篇文章,但它太笨拙了,不起作用 这就是我尝试过的: <% if @f.current_user.id.present? %> <%= f.submit "Submit" %> <% else %> <p>Disable code here</p> <%
<% if @f.current_user.id.present? %>
<%= f.submit "Submit" %>
<% else %>
<p>Disable code here</p>
<% end %>
在此处禁用代码
编辑:考虑到评论中给出的附加信息,答案完全重写
首先,在控制器中,您需要检查当前用户是否在以下时间之前发布:
# In controller action
@user_already_submitted = Answer.where(user_id: current_user.id,
application_id: @answer.application_id).count > 0
然后在视图中:
<%= form_for @answer do |f| %>
<!-- rest of the form -->
<%= f.submit "Submit", :disabled => @user_already_submitted %>
<% end %>
@用户已提交%>
@Laas收到此错误:nil:NilClass的未定义方法“current_user”这是我在f(@answer)s17.postimg.org/rjecvmumn/…上的数据库设置。我怀疑它没有检查当前用户是否与列用户id匹配,这就是错误所在?表格_是这样的:好吧,我假设你只问了禁用部分,其他部分已经解决了。调整了我的答案。@Laas那也不行。它仍然允许提交表单。这很奇怪。但另一方面,我的服务器端拒绝了它,所以这起作用了。@answer.user\u id
和当前用户.id
是否真的匹配?例如,使用Rails.logger
验证。另一个问题是:您到底想要哪个-显示禁用的按钮,还是显示一些文本。我也将以后者为例。