我模型中的实体/对象路线与route.rb不同?

时间:2018-07-16 19:12:27

标签: ruby-on-rails model routes ruby-on-rails-5

我的应用程序中有一个名为 CalendarEntry 的模型,应该保留条目博客的数据。

CalendarEntry是管理员角色,因此路由如下:

/admins/calendar_entries

和我的 route.rb 是这样:

namespace :admins do
  resources :calendar_entries
end

但是以某种方式,当我使用以下代码在控制器中调用实体时:

@entry = CalendarEntry.new(params[:calendar_entries])

我收到一条错误的路线,内容为:

undefined method `calendar_entries_path' for #<#<Class:0x007fdc6adfe4d8>:0x007fdc6f70aeb0>

如果我将CalendarEntry放在管理员的命名空间中,那我不应该得到以下路线:

admins_calendar_entries_path

??

这对我来说很重要,路由可以,但是我的实体以某种方式获得了不同于route.rb的另一条路由,有人知道为什么吗?或者,也许除了路由之外,我还必须指定CalendarEntry的路由?还是正确的路径是什么?

我感谢每一个答复!

  

更新7月16日-下午3:18

我控制器的完整代码是:

module Admins
  # Class for Entries
  class CalendarEntriesController < ApplicationController
    before_action :authenticate_admin!

    def index; end

    def new
      @entry = CalendarEntry.new(params[:calendar_entries])
    end
  end
end

我的完整路线是:

  admins_calendar_entries  GET    /admins/calendar_entries(.:format)          admins/calendar_entries#index
                           POST   /admins/calendar_entries(.:format)          admins/calendar_entries#create
 new_admins_calendar_entry GET    /admins/calendar_entries/new(.:format)      admins/calendar_entries#new
edit_admins_calendar_entry GET    /admins/calendar_entries/:id/edit(.:format) admins/calendar_entries#edit
     admins_calendar_entry GET    /admins/calendar_entries/:id(.:format)      admins/calendar_entries#show
                           PATCH  /admins/calendar_entries/:id(.:format)      admins/calendar_entries#update
                           PUT    /admins/calendar_entries/:id(.:format)      admins/calendar_entries#update
                           DELETE /admins/calendar_entries/:id(.:format)      admins/calendar_entries#destroy

1 个答案:

答案 0 :(得分:1)

我的问题在注释中得到解决,事实证明我的错误是由我的观点引起的,我有一个简单的形式,如下所示:

<%= simple_form_for @entry do |f| %>
  # Inputs fields
<% end %>

但是问题是我必须指定要调用的名称空间,所以我这样做是这样的:

<%= simple_form_for [:admins, @entry] do |f| %>
  # Inputs fields
<% end %>

寓言中的道德感:并非所有事物看上去都是如此