Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如果当前用户以前提交过,是否要禁用“提交”按钮_Ruby On Rails - Fatal编程技术网

Ruby on rails 如果当前用户以前提交过,是否要禁用“提交”按钮

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> <%

因此,我试图使我的提交按钮禁用,如果你已经提交了表单

我在您提交时存储您当前的_user.id。如果您再试一次,您会遇到一个已禁用的提交按钮

我一直试图用if-else语句来写这篇文章,但它太笨拙了,不起作用

这就是我尝试过的:

<% 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
验证。另一个问题是:您到底想要哪个-显示禁用的按钮,还是显示一些文本。我也将以后者为例。