Ruby:在模型文件中转换方法以更新表格列中的数据的方法

时间:2018-04-19 17:40:29

标签: ruby-on-rails ruby methods

我创建了一个日期计数器的方法,并显示该事件的剩余天数。我在表格中有一个days列,我想要更新它显示在该方法中的剩余日期。 我不确定如何或在何处进行此更改,以便数据将自动更新表格。 我的模型文件中的倒计时方法中的代码是:

  def event_days
    Integer(self.end_date - closer_to_end_date)
  end

  def closer_to_end_date
    if Date.today >= self.start_date
      Date.today
    elsif self.start_date >= Date.today
      self.start_date
    end
  end

我甚至尝试用self.days代替event_days,但它没有像我想象的那样更新表格中的日期数据。这是我必须在days迁移文件中进行的更改吗?如果是这样,应该添加什么?

2 个答案:

答案 0 :(得分:0)

您需要保存对象(模型的实例)才能更新表中的列,例如:

var axios = require("axios")
var bigtable = []
var somedataURL = "some data URL here"
function buildReq(dataURL){
    return axios.get(dataURL)
                .then(function(response) {
                    // response.data is just a simple array
                    var data = response.data.slice(0);
                    bigtable = bigtable.concat(data);
                    return bigtable;
                })
}
var req = buildURL(somedataURL);
for(var i = 0; i<10; i++){
    req = req.then(function(bigtable){
        return buildReq(somedataURL_IdontCARE);
    })
}
req.then(function(bigtable){
    console.log("final:"+bigtable)
})
module.exports = bigtable

答案 1 :(得分:0)

是的,你不需要功能只是几天是消极或积极的.. 如果elsif语句也不要写这么混乱,因为所有你需要的其他因为elsif是oposite然后是部分。

除了那个没有看到点保存到数据库..u可以进行计算然后你需要显示该数据。

同样好的提示是阅读http://guides.rubyonrails.org/active_record_callbacks.html处的回调函数 就像之前提到的那样,你可以设置属性计算然后模型初始化