Ruby on rails 我是否可以在不使用“新建”和“创建”操作的情况下设置默认值,并使用“编辑”和“更新”操作直接对其进行编辑?
我有一个用户模型和一个问题模型。每个用户有一个问题,每个问题属于一个用户。问题模型有三列-问题一、问题二和问题三-每个列都设置为字符串“TBD”的默认值Ruby on rails 我是否可以在不使用“新建”和“创建”操作的情况下设置默认值,并使用“编辑”和“更新”操作直接对其进行编辑?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,我有一个用户模型和一个问题模型。每个用户有一个问题,每个问题属于一个用户。问题模型有三列-问题一、问题二和问题三-每个列都设置为字符串“TBD”的默认值 当用户创建帐户并登录时,我希望在其个人资料上显示问题和回答=“TBD”,然后使用Best in place,我希望他能够使用编辑和更新操作编辑他的回答。但是我无法使用user.question.questionone检索问题,因为它们是零,因为这里没有创建或新操作。我该怎么做呢?现在,您可以编写一个迁移,在创建问题时添加默认问题 class C
当用户创建帐户并登录时,我希望在其个人资料上显示问题和回答=“TBD”,然后使用Best in place,我希望他能够使用编辑和更新操作编辑他的回答。但是我无法使用
user.question.questionone
检索问题,因为它们是零,因为这里没有创建或新操作。我该怎么做呢?现在,您可以编写一个迁移,在创建问题时添加默认问题
class ChangeDefaultQuestions < ActiveRecord::Migration
def self.up
change_column :questions, :question_one, :string, :default => 'What is your name?'
change_column :questions, :question_two, :string, :default => 'How old are you?'
change_column :questions, :question_three, :string, :default => 'Where do you live'
# to add default questions to previously created questions
Questions.update_all({ :question_one => 'your qestion', :question_two => 'your question', :question_three => 'your question' })
end
def self.down
change_column :movies, :rating, :string, :default => nil
Questions.update_all({ :question_one => '', :question_two => '', :question_three => '' })
end
end
class ChangeDefaultQuestions“您叫什么名字?”
更改列:questions,:question\u two,:string,:default=>“你多大了?”
更改列:questions,:question三,:string,:default=>“你住在哪里”
#将默认问题添加到以前创建的问题
问题。更新所有问题({:问题一=>'你的问题',:问题二=>'你的问题',:问题三=>'你的问题')
结束
def自动关闭
更改列:movies,:rating,:string,:default=>nil
问题。更新所有({:问题一=>'',问题二=>'',问题三=>'})
结束
结束
我相信它会回答您的问题在这里,您可以编写一个迁移,在创建问题时添加默认问题
class ChangeDefaultQuestions < ActiveRecord::Migration
def self.up
change_column :questions, :question_one, :string, :default => 'What is your name?'
change_column :questions, :question_two, :string, :default => 'How old are you?'
change_column :questions, :question_three, :string, :default => 'Where do you live'
# to add default questions to previously created questions
Questions.update_all({ :question_one => 'your qestion', :question_two => 'your question', :question_three => 'your question' })
end
def self.down
change_column :movies, :rating, :string, :default => nil
Questions.update_all({ :question_one => '', :question_two => '', :question_three => '' })
end
end
class ChangeDefaultQuestions“您叫什么名字?”
更改列:questions,:question\u two,:string,:default=>“你多大了?”
更改列:questions,:question三,:string,:default=>“你住在哪里”
#将默认问题添加到以前创建的问题
问题。更新所有问题({:问题一=>'你的问题',:问题二=>'你的问题',:问题三=>'你的问题')
结束
def自动关闭
更改列:movies,:rating,:string,:default=>nil
问题。更新所有({:问题一=>'',问题二=>'',问题三=>'})
结束
结束
我相信它会回答您的问题当创建新用户时,它还没有相关的问题,所以您需要以某种方式构建它。常见的方法是在创建之前使用ActiveRecord回调
,或者在创建之后使用ActiveRecord回调,类似于
# user.rb
class User << ActiveRecord::Base
has_one :question
after_create :create_question
end
#user.rb
类User创建新用户时,它还没有关联的问题,所以您需要以某种方式构建它。常见的方法是在创建之前使用ActiveRecord回调,或者在创建之后使用ActiveRecord回调,类似于
# user.rb
class User << ActiveRecord::Base
has_one :question
after_create :create_question
end
#user.rb
类用户#User.rb
类用户#User.rb
类用户