form_for - 如果签名,则做一件事,如果不做另一个逻辑

时间:2013-11-02 14:19:51

标签: ruby-on-rails form-for

我有一个表单可以将内容发布到Feed中。如果他们已登录,我希望用户发布到Feed,但如果他们不是并且他们点击提交,我希望他们看到登录模式。这是我目前没有这种逻辑的形式。这是一个基本的形式 - 没什么特别的。

<%= form_for(@sub_opp) do |f| %>
  <div class="field">
    <%= f.label :sport, :class=>'form_label' %>
    <%= f.select :sport, ['Basketball', 'Beach Volleyball', 'Flag Football'] %>
  </div>
  <div class="field" id = "datetime_select">
    <%= f.label :Sub_Date, :class=>'form_label' %>
    <%= f.datetime_select :sub_time, :ampm => true, :minute_step => 15 %>
  </div>
  <div class="actions">
    <%= f.submit 'POST', :class=>"btn btn-success btn-large" %>
  </div>
<% end %>

从概念上讲,当我点击提交按钮时,我想在这些行中加入逻辑。

<% if current_user.present? %>
     Submit the form
   Otherwise
     <a href="#myModal" data-toggle="modal">

你能用form_for做到吗?感谢

1 个答案:

答案 0 :(得分:0)

我用简单的if / then语句想出来了。很惊讶我没想到这个。感谢。

<% if current_user.present? %>
 <div class="field">
  <%= f.hidden_field :poster_user_id, :value => current_user.id %>
 </div>
 <div class="actions">
  <%= f.submit 'POST', :class=>"btn btn-success btn-large" %>
 </div>
<%else%>
 <div class="actions">
  <a href="#myModal" data-toggle="modal", class ="btn btn-success btn-large">POST</a>
 </div>
<%end%>