我对Rails很新。
我正在处理User
的个人资料页面。 show
视图分为部分视图。关于我的建模结构的问题是,User
可以有Skill
。但User
模型本身没有Skill
相关列,因此所有Skill
条目都保存在Skill
模型中。
所以,我的问题是,如何在User
show
视图中包含一个部分内容,其中包含一个简单的添加Skill
表单(仅限名称),可以保存该技能进入自己的表并将其添加到当前User.skills
的集合中?
答案 0 :(得分:0)
在User#show
中创建一个@skill = Skill.new
,您可以在视图中使用它。
然后在你的部分你可以做
<%= form_for(@skill), ... %>
了解详情
答案 1 :(得分:0)
我不明白你的问题。您可以在部分和控制器的操作中定义表单,您只需保存技能并将用户的ID与其关联即可。我希望你知道技能模型必须属于用户,并且技能表中应该有一个user_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!
答案 2 :(得分:0)
如果你在skill / _form.html.erb上有部分表格,你可以这样做:
<%= render "skills/form", skill: @skill %>
视图上的,您必须添加
@skill = Skill.new
关于Profile控制器的show动作。要保存该技能,必须在Profile控制器上执行更新操作:
@skill = Skill.create(params[:skill])
@user.skills < @skill
@user.save