尝试使用has_many
为rails创建自定义路由这是我的动漫'
的模型has_many :anime_categories, dependent: :destroy
这是我做的路线
match 'animes/:id/categories/new' => 'anime_categories#new', :via => :get
问题是当我访问/动漫/动漫名称/类别/新时我从form_for获得了no方法错误:
NoMethodError in AnimeCategories#new
Showing
app/views/anime_categories/new.html.erb where line #11 raised:
undefined method `anime_categories_path' for #<# <Class:0x007fb643147d40>:0x007fb6431365b8>
这是第11行
<%= form_for(@anime_category) do |f| %>
AnimeCategory新方法:
class AnimeCategoriesController < ApplicationController
def new
@anime = Anime.friendly.find(params[:id])
@anime_category = Anime.friendly.find(@anime.id).anime_categories.new
end
无法确定导致问题的原因。我有新的&#39;动漫类别控制器中的方法,所以我认为它是一个路由问题。
我想保持url格式的方式。我怎么能这样做?
由于
答案 0 :(得分:1)
你没有在form_for中提到过方法,所以在你的情况下,默认情况下它将作为post方法。您定义的路线是:get方法。
在form_for上你应该指定创建方法路径而不是post方法路径。
我不确定您的用例,但是如果您想重定向到新的
<%= form_for(@anime_category, method: :get) do |f| %>