0

我有以下路线:

路线.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#new 中的 NoMethodError

显示 /home/pinouchon/code/sharewizz/webapp/app/views/admin/carousel_images/_form.html.erb 其中第 1 行提出:

#<#:0xdfe45a4> 的未定义方法 `admin_carousel_images_index_path'

我坚持认为当资源是复数时,路径中的“_index”没有被附加。为什么它附加在我的案例中?

4

2 回答 2

0

Rails 有时无法弄清楚如何复数或检测复数。你试过变形器吗?我有一个类似的案例并为我工作。

ActiveSupport::Inflector.inflections(:en) do |inflect|
   inflect.irregular 'carousel_image', 'carousel_images'
end

顺便说一句,我使用的是 Rails 5.1。

于 2019-11-08T12:30:41.740 回答
-1

更改以下内容并尝试:

def new
  @admin_carousel_image = Admin::CarouselImage.new #CarouselImage is your model name here. It should be singular.
  #...
end

在视图中,如果您formindex.html.erb

你应该有以下内容:

<%= render 'form' %>

文件的index顺序应该是app/view/admin/carousel_images/index

在这里,路由文件在 carousel_images 文件夹中找到 index.html.erb 并呈现表单。

于 2013-03-20T12:36:27.003 回答