繁体   English   中英

使用嵌套资源和simple_form时,“ Ruby的未定义方法'model_name'”错误

[英]“undefined method `model_name' for…” error when using nested resources and simple_form, ruby on rails

enter code here ,我得到一个“未定义的方法`MODEL_NAME” {:URL =>‘/可能性/ 65 / date_events /新’}:哈希”的错误,当我使用嵌套资源simple_form。

这是我的date_events / new.html.erb:

<%= simple_form_for([@possibility, @dateevent, url: new_possibility_date_event_path]) do |f| %>

我曾经尝试过:

<%= simple_form_for([@possibility, @dateevent]) do |f| %>

我收到此错误消息:

undefined method `date_events_path' for #<#<Class:0x007ffb4165e138>:0x007ffb42056f78>

我的路线:

        event_possibilities GET    /events/:event_id/possibilities(.:format)                     possibilities#index
                            POST   /events/:event_id/possibilities(.:format)                     possibilities#create
      new_event_possibility GET    /events/:event_id/possibilities/new(.:format)                 possibilities#new
     edit_event_possibility GET    /events/:event_id/possibilities/:id/edit(.:format)            possibilities#edit
          event_possibility GET    /events/:event_id/possibilities/:id(.:format)                 possibilities#show
                            PATCH  /events/:event_id/possibilities/:id(.:format)                 possibilities#update
                            PUT    /events/:event_id/possibilities/:id(.:format)                 possibilities#update
                            DELETE /events/:event_id/possibilities/:id(.:format)                 possibilities#destroy
                     events GET    /events(.:format)                                             events#index
                            POST   /events(.:format)                                             events#create
                  new_event GET    /events/new(.:format)                                         events#new
                 edit_event GET    /events/:id/edit(.:format)                                    events#edit
                      event GET    /events/:id(.:format)                                         events#show
                            PATCH  /events/:id(.:format)                                         events#update
                            PUT    /events/:id(.:format)                                         events#update
                            DELETE /events/:id(.:format)                                         events#destroy
    possibility_date_events GET    /possibilities/:possibility_id/date_events(.:format)          date_events#index
                            POST   /possibilities/:possibility_id/date_events(.:format)          date_events#create
 new_possibility_date_event GET    /possibilities/:possibility_id/date_events/new(.:format)      date_events#new
edit_possibility_date_event GET    /possibilities/:possibility_id/date_events/:id/edit(.:format) date_events#edit
     possibility_date_event GET    /possibilities/:possibility_id/date_events/:id(.:format)      date_events#show
                            PATCH  /possibilities/:possibility_id/date_events/:id(.:format)      date_events#update
                            PUT    /possibilities/:possibility_id/date_events/:id(.:format)      date_events#update
                            DELETE /possibilities/:possibility_id/date_events/:id(.:format)      date_events#destroy
              possibilities GET    /possibilities(.:format)                                      possibilities#index
                            POST   /possibilities(.:format)                                      possibilities#create
            new_possibility GET    /possibilities/new(.:format)                                  possibilities#new
           edit_possibility GET    /possibilities/:id/edit(.:format)                             possibilities#edit
                possibility GET    /possibilities/:id(.:format)                                  possibilities#show
                            PATCH  /possibilities/:id(.:format)                                  possibilities#update
                            PUT    /possibilities/:id(.:format)                                  possibilities#update
                            DELETE /possibilities/:id(.:format)                                  possibilities#destroy
                       root GET    /  

有什么建议吗? 提前致谢!

可能的问题是,我有两个不同的嵌套资源,如下所示:

  resources :events do
    resources :possibilities
  end

  resources :possibilities do
    resources :date_events
  end

编辑:这是我的可能性创建操作。 它重定向到:

  redirect_to new_possibility_date_event_path(@possibility)

def create
  @possibility = Possibility.new
  @possibility.event_id = params[:event_id]

  if @possibility.save

  else
    render 'new'
  end
  redirect_to new_possibility_date_event_path(@possibility)
end

编辑2:这是我的date_events控制器:

  def new
    @dateevent = DateEvent.new
    @datelist = "Test"
    @date = params[:date] ? Date.parse(params[:date]) : Date.today
    @first_calendar_day = @date.beginning_of_month.beginning_of_week(:monday)
    @last_calendar_day = @date.end_of_month.end_of_week(:monday)
    @weeks = (@first_calendar_day..@last_calendar_day).to_a.in_groups_of(7)
  end

  def create
    @possibility = Possibility.find(params[:possibility])
    @datelist = params[:date].split(",")
    @datelist.each do |date|
      params[:date_event][:date] = date
      @dateevent = DateEvent.new(dateevents_params)
      @dateevent.save
    end
    redirect_to kalender_path
  end
end

private

def dateevents_params
  params.require(:date_event).permit(:date)
end

尝试这个:

<%= simple_form_for([@possibility, @dateevent], url: new_possibility_date_event_path(@possibility)) do |f| %>

要么

<%= simple_form_for([@possibility, @dateevent], :url=> "/possibilities/#{@possibility.id}/date_events/new") do |f| %>

date_event添加到date_event new操作中

@possibility = Possibility.find_by_id(params[:possibility_id])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM