繁体   English   中英

Ruby on Rails路由错误

[英]Ruby on Rails routing error

我对铁轨上的红宝石很新! 我基本上是在尝试创建一个允许组织创建事件的应用程序! 到目前为止,用户可以创建一个组织但是当他们尝试创建一个事件时,我得到了这个错误:路由错误未定义的局部变量或方法`params'用于EventsController:Class

我已经查看了所有内容并试图找到类似于堆栈溢出的类似内容,如果您有任何建议请告诉我!

事件控制器:before_action @organization = Organization.find(params [:organization_id])

  def index
    @events = @organization.events
  end

  def show
    @event = Event.find(params[:id])
  end


  def new
    @event = Event.new
  end

  def create
    @event = Event.new(event_params)
    @event.organization = @organization

    if @event.save
      redirect_to organizations_path
    else
      render 'new'
      flash[:notice] = "Event not saved"
    end
  end

  def edit
    @event = Event.find(params[:id])
  end

  def destroy
    @event = Event.find(params[:id])
    @event.destroy
    redirect_to organizations_url
  end

  private  
  def event_params

    params.require(:event).permit(:user_id, :organization_id, :event_size, :date, :name, :description, :location)

  end

end

组织控制员

  def index
    @organizations = Organization.all
    # @organization = Organization.find(params[:id])

  end

  def show
    @organization = Organization.find(params[:id])
    @events = @organization.events
  end

  def new
    @organization = Organization.new
  end

  def create
    @organization = Organization.new(organization_params)
    if @organization.save
      redirect_to organizations_path

    else
      render "new"
    end
  end

  private
  def organization_params
    params.require(:organization).permit(:organization_id, :name, :description, :location, :volunteer_position)
  end
end

事件index.html.erb

    <h1>Events index</h1>

<% @events.each do |event| %>

<div class="events_name">


  <p><%= event.name %></p>
  <p><%= event.description %></p>
  <p><%= event.location %></p>
<br/>
  <% end %>

</div>

路线

    Rails.application.routes.draw do

  root 'home#index'
  resources :timeslots
  resources :sessions, only: [:new, :create, :destroy]
  resources :users
  resources :home
  resources :home, only: [:index]
  resources :organizations do
  resources :events
  end

事件形式

<%= form_for @event do |f| %>

<div>
 <%= f.label :name %>:
 <%= f.text_field :name %><br />
</div>
<div>
 <%= f.label :description %>:
 <%= f.text_field :description %><br />
</div>
<div>
 <%= f.label :location %>:
 <%= f.text_field :location %><br />
</div>
<div>
    <div class="field">
     <%= f.label :date%>
     <%= f.date_select :date,
         { order: [:month, :day, :year],
           prompt: [ day: 'Select day', month: 'Select month', year: 'Select year' ]} %>
   </div>

<br>
 <%= f.submit %>
<% end %>

根据您对第一个注释的响应,您可能需要从ApplicationController继承,这是params在引擎盖下定义的地方。

在构建应用程序时,所有控制器都需要以某种方式从ApplicationController继承。 有时,这意味着嵌套控制器将从继承自ApplicationController的父控制器继承。

例如,

class ParentController < ApplicationController
end

class Parent::ChildController < ParentController
end

暂无
暂无

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

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