我有以下路线:
routes.rb中:
namespace :admin do
#...
resources :carousel_images
end
控制器:
def new
@admin_carousel_image = CarouselImages.new
#...
在视图中,我render 'form'
:
<%= form_for [:admin, @admin_carousel_image] do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
型号:
class Admin::CarouselImage < ActiveRecord::Base
attr_accessible :image
mount_uploader :image, CarouselUploader
end
当我访问/admin/carousel_images/new
时,我得到了
Admin / carousel_images中的NoMethodError #new
显示 /home/pinouchon/code/sharewizz/webapp/app/views/admin/carousel_images/_form.html.erb 第1行引发的地方:
未定义的方法`admin_carousel_images_index_path'for #&LT;#:0xdfe45a4&GT;
我在路径wasn't appended when the resource is plural中找到了“_index”。为什么它会附加在我的案例中?
答案 0 :(得分:0)
有时,铁轨无法弄清楚如何复数或检测复数。您尝试过打折机吗?我有一个类似的案例,并为我工作。
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'carousel_image', 'carousel_images'
end
顺便说一句,我正在使用Rails 5.1。
答案 1 :(得分:-1)
更改以下内容并尝试:
def new
@admin_carousel_image = Admin::CarouselImage.new #CarouselImage is your model name here. It should be singular.
#...
end
在视图中,如果您要从form
,
index.html.erb
你应该有以下内容:
<%= render 'form' %>
index
文件的顺序应为app/view/admin/carousel_images/index
此处路径文件在carousel_images文件夹中找到index.html.erb并呈现表单。