【发布时间】:2016-01-04 08:16:46
【问题描述】:
尝试使用 has_many 为 Rails 制作自定义路线
这是我的“动漫”模型
has_many :anime_categories, dependent: :destroy
这是我做的路线
match 'animes/:id/categories/new' => 'anime_categories#new', :via => :get
问题是当我访问 /animes/animename/categories/new 时,我得到一个从 form_for 引发的无方法错误:
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
看不出究竟是什么导致了问题。我在动漫类别控制器中有“新”方法,所以我认为这是一个路由问题。
我想保持原来的 url 格式。我该怎么做?
谢谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 routes