私はbelongs_toとhas_many関係で新しいスキルを作成しようとしています。未定義のスキルskill_path Rails
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
新しいスキルを1行で作成したいので、次のルートを作成しました。
資源:私は、私は、行の下にそのスキルを作成するには、次のルートを使用する必要があることがわかりすくいルートをすればスキル エンド
:行が リソースを行います。 new_row_skill_path
このリンクを使用する場合は、フォームに移動してそのフォームを作成してください。
<%= 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 %>
を。 undefined method
skills_path'`
これは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
end
フォームを使ってすべてのデータを送信するためのアクションを '作成 'しましたか?コントローラコードを共有できますか? – Gabbar