2017-03-06 148 views
1

我對軌道上的ruby非常陌生!我基本上正在嘗試創建一個允許組織創建活動的應用程序!到目前爲止,用戶能夠創建一個組織,但是當他們試圖創建一個事件,我得到這個錯誤:路由錯誤未定義的局部變量或方法`PARAMS'爲EventsController:Ruby on Rails路由錯誤

我看過了一切,試圖找到類似的東西遍佈堆棧溢出,如果您有任何建議,請讓我知道!

事件控制器: 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 %> 
+0

是'EventsController'從'ApplicationController'繼承? – MaicolBen

+0

不,它不應該..應該(對於遲到的回覆抱歉!)? –

+0

你可以發佈從視圖傳遞給控制器​​的參數嗎?它將在日誌中。另外,發佈事件表格 – Pramod

回答

0

根據您迴應的第一個註釋,你可能需要從ApplicationController繼承,這就是params得到引擎蓋下定義。

在構建應用程序時,所有控制器都需要以某種方式從ApplicationController繼承。有時,這意味着嵌套控制器只會從繼承自ApplicationController的父控制器繼承。

例如,

class ParentController < ApplicationController 
end 

class Parent::ChildController < ParentController 
end