Ruby on rails 如何在外部控制器中添加模型的新对象
我对Rails还不太熟悉 我正在为Ruby on rails 如何在外部控制器中添加模型的新对象,ruby-on-rails,Ruby On Rails,我对Rails还不太熟悉 我正在为用户制作个人资料页面。show视图分为多个部分。关于我的建模结构,一个用户可以拥有技能。但是User模型本身没有Skill相关列,因此所有Skill条目都保存在Skill模型中 因此,我的问题是,如何在用户显示视图中包含一个分部,该视图包含一个简单的add技巧表单(仅需要名称),它将该技能保存到自己的表中,并将其添加到当前用户技能的集合中。?在User\show中创建可在视图中使用的@Skill=Skill.new 然后在你的部分你可以做 <%= form
用户
制作个人资料页面。show
视图分为多个部分。关于我的建模结构,一个用户
可以拥有技能
。但是User
模型本身没有Skill
相关列,因此所有Skill
条目都保存在Skill
模型中
因此,我的问题是,如何在用户
显示
视图中包含一个分部,该视图包含一个简单的add技巧
表单(仅需要名称),它将该技能保存到自己的表中,并将其添加到当前用户技能的集合中。
?在User\show
中创建可在视图中使用的@Skill=Skill.new
然后在你的部分你可以做
<%= form_for(@skill), ... %>
更多信息请访问我不理解您的问题。您可以在partial中定义一个表单,在controller的操作中,您只需保存技能并将用户的id与之关联。我希望您知道技能模型必须属于用户,并且技能表中应该有一个用户id列来创建关联。尽管我正在编写下面创建关联的示例代码
skill = Skill.new
user.skill << skill #Add association for user and skill
#Add skill related info from params into the skill model object
skill.save!
skill=skill.new
user.skill如果您在skill/_form.html.erb上有表单的部分o,您可以执行以下操作:
<%= render "skills/form", skill: @skill %>
在显示配置文件控制器的操作时。要保存该技能,您必须在Profile controller的更新操作中执行该操作:
@skill = Skill.create(params[:skill])
@user.skills < @skill
@user.save
@skill=skill.create(参数[:skill])
@用户技能<@skill
@user.save
为此,您必须在routes.rb文件中创建一个嵌套资源(假设用户拥有多个:技能和技能属于:用户)。
@skill = Skill.create(params[:skill])
@user.skills < @skill
@user.save