RUBY ON RAILS-获取用户输入以插入数据库,处理它,将新变量插入数据库

时间:2012-04-03 01:40:30

标签: ruby-on-rails ruby-on-rails-3 insert

用户需要输入一个名称(将插入数据库),我需要在另一个函数中使用用户输入名称来处理,然后我需要将新处理的输入插入到数据库中。

到目前为止,我设法做的是:

 A name inserted into database
 -> I saved it (name = personname, nameJob = nil)
 -> I update_attribute('nameJob', nameJob_func(params[:name]))

在处理nameJob_func()后,是否有更好的方法可以将两个条目一起插入数据库?

1 个答案:

答案 0 :(得分:1)

执行nameJob_func()功能的你n create a before_save callback。因此,您永远不需要显式调用它,因为Rails会在保存对象之前调用它。只需要处理输入名称。

YourModel < ActiveRecord::Base
  # Register nameJob_func as a callback
  before_save :nameJob_func

private
  def nameJob_func
    # Do something with self.name
    self.nameJob = 'something you made here with #{self.name}'
    # This value will get saved to the database automatically
  end
end

现在,只要对象调用.save()nameJob_func()就会运行,并从:name获取更新后的值。

YourModelsController < ActionController::Base
  def create
    @yourobj = YourModel.new(params[:name])
    # The callback is called and then the whole thing gets saved
    @yourobj.save
  end
end