rails - 比较两个值以查看它们是否相等

时间:2014-06-18 04:27:20

标签: ruby-on-rails controller

我希望能够找出控制器动作中两个值是否相等。

def completed
  @meeting = Meeting.find(params[:id])
  if @meeting.day_of_meeting == @meeting.days
    @meeting.update_attribute(:day_of_meeting, '1')
    redirect_to :back
  else
    @meeting.increment!
    redirect_to :back
  end
end

我遇到的问题是:

if @meeting.day_of_meeting == @meeting.days

当我运行它时,似乎永远无法验证这两个字段是否相等,只是增加day_of_meeting字段。

任何帮助都将不胜感激。

更新

在模型增量中!

def increment!
  update_attribute(:day_of_meeting, day_of_meeting + 1)
end

基本上,@ meeting.day_of_meeting是一个代码,当等于@ meeting.day时,我希望@ meeting.day_of_workout重置回'1'。发生的事情是@ meeting.day_of_meeting永远不会重置并继续增加。两个值都是整数。

2 个答案:

答案 0 :(得分:2)

如果没有看到更多代码,我猜测@ meeting.day_of_meeting或@ meeting.days可能是一个字符串。

@meeting.day_of_meeting == @meeting.days.to_i

假设@ meeting.days是一个字符串,您可以转换为整数并进行比较。

答案 1 :(得分:0)

两个列表可能具有相同的内容,但顺序不同,则不完全相同。所以试试:

@meeting.day_of_meeting.sort == @meeting.days.sort