2015-05-30 4 views
0

Как именно я могу создавать отдельные страницы, пока еще могу получить информацию о пользователе от контроллера и модели?Rails: undefined method `model_name 'для nil: NilClass

Например, я хочу иметь отдельные страницы, но при этом использовать одну и ту же информацию у контроллера продуктов.

просмотров/продукт/order.html.erb

Но когда я добавить simple_form_for я получаю сообщение об ошибке

<%= simple_form_for(@products) do |f| %> 

В основном все, что я пытаюсь иметь это separte страница представить Информация для продукта. Если бы не я, я бы с радостью согласился сделать это на одной странице и иметь вращающийся простой_образный образ, не создавая несколько страниц.

http://malsup.com/jquery/cycle/

Пример:

Example-1 Example-2 Example-3

products_controller.rb

class ProductsController < ApplicationController 
before_action :set_product, only: [:show, :edit, :update, :destroy] 

def index 
@products = Product.where(availability: true) 
    respond_with(@products) 
end 


def show 
end 


def new 
    @product = Product.new 
end 


def edit 
    authorize! :manage, @product 
end 


def create 
    @product = current_user.products.new(product_params) 
    @product.save 
    respond_with(@product) 
end 


def update 
    authorize! :manage, @product 
    respond_to do |format| 
    if @product.update(product_params) 
     format.html { redirect_to @product, notice: 'Product was successfully updated.' } 
     format.json { render :show, status: :ok, location: @product } 
    else 
     format.html { render :edit } 
     format.json { render json: @product.errors, status: :unprocessable_entity } 
    end 
    end 
end 

def destroy 
    authorize! :manage, @product 
    @product.destroy 
    respond_to do |format| 
    format.html { redirect_to products_url, notice: 'Product was successfully destroyed.' } 
    format.json { head :no_content } 
    end 
end 
+0

вставить код контроллера –

+0

Вы уверены, что его '@' 'продуктов в <% = simple_form_for (@products) делать | F | %> '? – bhanu

ответ

1
<%= simple_form_for(@product) do |f| %> 

Использование @product вместо @products

Добавить следующее products_controller.rb

def order 
    @product = Product.new 
end 
+0

Я все еще получаю 'undefined method model_name для nil: NilClass', я обновил пример в вопросе. Как мне это сделать, не создавая новую страницу, например, чтобы форма просто скользила, нажимая пузыри вверху? – JamesRocky

+0

где ваш метод ** ** заказал в вашем продукте_controller? –

+0

Я не определил порядок, я просто подумал о случайной странице – JamesRocky

Смежные вопросы