<%= 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块中,因为无论我在视图中的选择,所有这些都是真的(例如我选择每周,但无论如何应用程序只做一次和每天)代码有什么问题?感谢阅读:)等待任何想法
答案 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)
你的属性应该是布尔值