我只希望未登录的用户使用remote:true的表单,但同时应正常重定向已登录的用户。所以我尝试了这样的东西,但它不起作用(甚至看起来都不对),但你明白了:
<%= simple_form_for(@post, html: {class: "form-horizontal"}) if user_signed_in? do |f| %>
<%= simple_form_for(@post, html: {class: "form-horizontal"}, remote: true) if !user_signed_in? do |f| %>
您的解决方案不起作用,因为您对simple_form_for
的第二次调用位于刚刚传递给simple_form_for
的第一次调用的块中。您可以使用三元运算符将remote
选项设置为true或false,如下所示:
<%= simple_form_for(@post, html: {class: "form-horizontal"}, remote: ( user_signed_in? ? false : true ) ) do |f| %>