首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义的方法skills_path Rails

未定义的方法skills_path Rails
EN

Stack Overflow用户
提问于 2017-12-05 12:24:11
回答 0查看 35关注 0票数 0

我正在尝试通过关系在我的belongs_to和has_many中创造一种新的技能。

代码语言:javascript
复制
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' %>

这是我正在使用的表单:

代码语言:javascript
复制
<%= 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(型号:技能)有什么关系吗?我试着在行下面自定义编写一条路由,如下所示,但我仍然收到该错误。

代码语言:javascript
复制
resources :rows do
  get 'rows/:id/skills/new', to: 'skills#new'
end

技能控制器

代码语言:javascript
复制
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
end
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47646056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档