我正在尝试通过关系在我的belongs_to和has_many中创造一种新的技能。
class Row < ApplicationRecord
belongs_to :timeframe, required: false
belongs_to :map, required: false
belongs_to :standard, required: false
belongs_to :content, required: false
belongs_to :skill, required: false
belongs_to :resource, required: false
belongs_to :assignment, required: false
end
class Skill < ApplicationRecord
has_many :rows
has_many :maps, through: :rows
end我想在一行下创建一项新技能,因此我创建了以下路径来完成此操作。
资源:行做资源:技能结束
如果我做了一个rake路径,我看到我需要使用下面的路径来在行下创建该技能。new_row_skill_path
如果我使用此link_to,我希望它转到表单以创建该表单。
<%= link_to '+', new_row_skill_path(row), class: 'btn btn-primary' %>
这是我正在使用的表单:
<%= form_with(model: skill, local: true) do |form| %>
<div class="form-group">
<%= form.label :skill %>
<%= form.text_field :skill, class: 'form-control' %>
</div>
<%= form.submit 'Submit', class: 'btn btn-primary' %>
<% end %>然而,当我单击add按钮时,我得到了这个错误。undefined method技能_路径‘`
这和我使用form_with(型号:技能)有什么关系吗?我试着在行下面自定义编写一条路由,如下所示,但我仍然收到该错误。
resources :rows do
get 'rows/:id/skills/new', to: 'skills#new'
end技能控制器
class SkillsController < ApplicationController
def new
@skill = Skill.new
end
def create
@skill = Skill.new(skill_params)
respond_to do |format|
if @skill.save
format.html { redirect_to root_path, notice: 'Skill created.' }
else
format.html { render :new, notice: 'That shit failed.' }
end
end
end
private
def skill_params
params.require(:skill).permit(:skill_id, :skills)
end
endhttps://stackoverflow.com/questions/47646056
复制相似问题