Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将值从控制器传递到模型?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何将值从控制器传递到模型?

Ruby on rails 如何将值从控制器传递到模型?,ruby-on-rails,Ruby On Rails,请提供任何帮助???您只需获取对象并更改其值,如下所示: class Task < ActiveRecord::Base has_many :notes, :as => :notable, :dependent => :destroy has_many :work_times, :dependent => :destroy end class WorkTime < ActiveRecord::Base belongs_to :task end c

请提供任何帮助???

您只需获取对象并更改其值,如下所示:

class Task < ActiveRecord::Base
  has_many :notes, :as => :notable,  :dependent => :destroy
  has_many :work_times, :dependent => :destroy
end

class WorkTime < ActiveRecord::Base
  belongs_to :task
end


class NotesController < ApplicationController


      end
    end
####

但是,这实际上是属于模型的代码,应该由模型方法包装。

您只需获取对象并更改其值,如下所示:

class Task < ActiveRecord::Base
  has_many :notes, :as => :notable,  :dependent => :destroy
  has_many :work_times, :dependent => :destroy
end

class WorkTime < ActiveRecord::Base
  belongs_to :task
end


class NotesController < ApplicationController


      end
    end
####

但是,这实际上是属于模型的代码,应该用模型方法包装。

因为关系是一个复杂的过程,所以您需要在特定的时间使用,而不是使用聚合:

user = User.first
user.username = 'changed_name'
user.save # and save it if you want
在这种情况下,选择并操纵最后一条工作时间记录。也许您想使用第一个,或者选择一个条件:

work_time = @task.work_times.last
work_time.start_time = Time.now
work_time.save!
有很多方法可以选择正确的记录进行操作,但是您的问题有些模糊

如果希望创建新条目而不是修改条目,则可能需要执行以下操作:

work_time = @task.work_times.where(:active => true).first

这只是在练习ActiveRecord模型关系。

由于该关系是一种复杂的关系,您将需要在特定时间工作,而不是在聚合:

user = User.first
user.username = 'changed_name'
user.save # and save it if you want
在这种情况下,选择并操纵最后一条工作时间记录。也许您想使用第一个,或者选择一个条件:

work_time = @task.work_times.last
work_time.start_time = Time.now
work_time.save!
有很多方法可以选择正确的记录进行操作,但是您的问题有些模糊

如果希望创建新条目而不是修改条目,则可能需要执行以下操作:

work_time = @task.work_times.where(:active => true).first

这只是在练习ActiveRecord模型关系。

正如其他一些答案所暗示的,您需要一个WorkTime类型的对象来将值传递给

从您发布的代码来看,您似乎没有这样的实例。你可以找一个工作时间。。或者创建一个新的工作时间。新建

看起来你有一个note@note的例子,虽然我不确定它是从哪里来的。。您可以使用以下方法获取适当的工作时间对象:

@task.work_times.create(:start_time => Time.now)
或其中的第一个带有:

@note.task.work_times

正如其他一些答案所暗示的,您需要一个WorkTime类型的对象来将值传递给

从您发布的代码来看,您似乎没有这样的实例。你可以找一个工作时间。。或者创建一个新的工作时间。新建

看起来你有一个note@note的例子,虽然我不确定它是从哪里来的。。您可以使用以下方法获取适当的工作时间对象:

@task.work_times.create(:start_time => Time.now)
或其中的第一个带有:

@note.task.work_times

看来你的答案是对的。有什么问题吗?这就是我得到的未定义的“工作时间”方法。我得到了日期,但代码的最后一行*work\u time.start\u time==time给出了错误。看起来你的答案是正确的。有什么问题吗?这就是我得到的未定义的“工作时间”方法。我得到了日期,但代码的最后一行*work\u time.start\u time==time给出了错误。我刚接触Ruby Rails,我不明白,你到底要我做什么??我的代码正在运行,我可以得到一个日期。我只需要在工作时间模型中的开始时间属性中传递该日期工作时间模型本身就是一个类。开始时间是该类的特定对象的属性。因此,如果您有一个类似“work\u time=WorkTime.find2”的对象,您可以对该对象执行work\u time.start\u time,以更改该值。简而言之,您首先必须创建一个WorkTime类型的对象,然后您可以设置任何值。是的,我知道了,但是WorkTime对我来说也是一个未决的问题,我想在work_times表中填充task_id以创建一个在创建注册器时生成的任务。现在我的工作时间表是空的如果工作时间有任务,你可以简单地执行工作时间。任务。在我的工作时间中创建或只是工作项目只是我想要存储任务id、开始时间和结束时间的模型。所以我可以计算每项任务所花费的总时间我对Ruby Rails不太了解,你到底要我做什么??我的代码正在运行,我可以得到一个日期。我只需要在工作时间模型中的开始时间属性中传递该日期工作时间模型本身就是一个类。开始时间是该类的特定对象的属性。因此,如果您有一个类似“work\u time=WorkTime.find2”的对象,您可以对该对象执行work\u time.start\u time,以更改该值。简而言之,您首先必须创建一个WorkTime类型的对象,然后您可以设置任何值。是的,我知道了,但是WorkTime对我来说也是一个未决的问题,我想在work_times表中填充task_id以创建一个在创建注册器时生成的任务。现在我的工作时间表是空的如果工作时间有任务,你可以简单地执行工作时间。任务。在我的工作时间中创建或只是工作项目只是我想要存储任务id、开始时间和结束时间的模型。因此,我可以计算每项任务所花费的总时间