Ruby on rails 调用实例方法时更新记录的正确方法。

Ruby on rails 调用实例方法时更新记录的正确方法。,ruby-on-rails,ruby,model,controller,put,Ruby On Rails,Ruby,Model,Controller,Put,当我调用update时,我不想像我希望的那样更新记录: 调用模型函数以更新模型的属性 更新模型 -- 这是正确的方法,还是应该使用单独的控制器功能或其他路径 听起来“下一步”是一种在更新(或保存)之前处理一些幕后细节的方法。在这种情况下,你所做的是合理的。不需要其他控制器方法或路由。如果你想坚持“更新”,你可以 在这种情况下,完成更新还是保存不会有什么区别。更新和保存更新数据库中的记录 这有帮助吗?为了清楚起见,我个人会在模拟中创建一个实例方法,高级代码应该类似 #Simulation mode

当我调用update时,我不想像我希望的那样更新记录:

  • 调用模型函数以更新模型的属性
  • 更新模型 --

    这是正确的方法,还是应该使用单独的控制器功能或其他路径

    听起来“下一步”是一种在更新(或保存)之前处理一些幕后细节的方法。在这种情况下,你所做的是合理的。不需要其他控制器方法或路由。如果你想坚持“更新”,你可以

    在这种情况下,完成更新还是保存不会有什么区别。更新和保存更新数据库中的记录


    这有帮助吗?

    为了清楚起见,我个人会在
    模拟中创建一个实例方法,高级代码应该类似

    #Simulation model
    class Simulation 
    
      ....
    
      def next_and_update(attrs)
        next
        update(attrs)
      end
    
    end
    
    #controller
    def update
      @simulation = Simulation.find(params[:id])
      @simulation.next_and_update(simulation_params)
    end
    

    想法是,如果你能阅读代码并理解发生了什么,多写1-2行就可以了

    是否使用了.mmmmdelicious?不,我只是有一个有趣的口音。您的下一个方法是否只是向@simulation添加一些属性,以便您的更新方法可以将它们与参数一起保存?它正在更改模型上的现有列变量,然后我想在之后保存它。参数永远不会被更改,只有next更改了另一个值。那么我应该下一步/更新,还是应该有一个单独的方法来下一步/保存。为什么不只是一个名为
    next的方法呢这可以做所有事情(包括保存)。我走这条路线,我喜欢尽可能多地保留控制器的逻辑,使它们更具可读性。@nnnnnn美味,很乐意帮忙,如果你想更新奇,签出rails
    服务对象
    #Simulation model
    class Simulation 
    
      ....
    
      def next_and_update(attrs)
        next
        update(attrs)
      end
    
    end
    
    #controller
    def update
      @simulation = Simulation.find(params[:id])
      @simulation.next_and_update(simulation_params)
    end