从视图发送信息到控制器轨道

时间:2015-05-28 14:19:57

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

我已经堆积了。这是我的事件表单视图:

    <%= form_for(@event) do |f| %>
  <div class="form-group">
       <%= f.radio_button :repeat, 'once', checked: true%><br>
           <%= f.label :repeat_once, 'once'%><br>
           <%= f.radio_button :repeat, 'daily'%><br>
           <%=f.label :repeat_daily, 'daily'%><br>
           <%= f.radio_button :repeat, 'weekly'%><br>
           <%= f.label :repeat_weekly, 'weekly'%><br>
        </div>
     <div class="actions">
        <%= f.submit %>
      </div>
    <% end %>

我在控制器中有方法

def create
    @event = Event.new(event_params)
    @event.user_id = current_user.id

    @event.save

  if @event.repeat = 'daily'
   ////
end
if @event.repeat = 'weekly'
  //////////
end

redirect_to events_url


  //// it's doesn't matter what inside if block

我的迁移:

 def change
        add_column :events, :repeat , :string
  end

问题出在if块中,因为无论我在视图中的选择,所有这些都是真的(例如我选择每周,但无论如何应用程序只做一次和每天)代码有什么问题?感谢阅读:)等待任何想法

3 个答案:

答案 0 :(得分:2)

您应该在==语句中使用双等于if。否则,您每天都会分配&#34;&#34;到@event.repeat,而不是检查它是否已经设置为&#34;每天&#34;。

if @event.repeat == 'daily'

答案 1 :(得分:1)

我认为你应该使用

if @event.repeat == 'daily'
   ////
end

instead of

if @event.repeat = 'daily'
   ////
end

@ event.repeat =&#39;每日&#39; 每天分配&#39;字符串重复不检查使用 @ event.repeat ==&#39;每日&#39; 同样适用于其他if条件

答案 2 :(得分:0)

显然,字符串总是很简洁。

你的属性应该是布尔值

相关问题