ошибка неопределенного метода id для nil: NilClass - PullRequest
0 голосов
/ 20 декабря 2018

Я новичок в рельсах, и у меня есть это no method error

show.html.erb

<h1>Profile Page for <%= @item.id %></h1>
<p><%= @item.content %></p>

items_controller.rb

class ItemsController < ApplicationController
    def new
        @item = Item.new
    end

    def create
        item = Item.new(item_Params)
        if item.save
            redirect_to user_path(item.user)
        else
            render 'new'
        end
    end

private

def item_Params
    params.require(:item).permit(:user_id, :content)
end
end

Я хочу создать страницу показа для items/:id и хочу иметь возможность просматривать каждый элемент по его идентификатору, как мне его создать?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

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

def show
 @item = Item.find(params[:id])
end

Вы можете найти свой предмет в модели вашего предмета, используя метод find.

0 голосов
/ 20 декабря 2018

это моя страница показа

Показать страницу для какого ресурса?Это /users/:id (так как вы перенаправляете на него) или items/:id?В любом случае вам необходимо определить @item в действии show соответствующего контроллера.Если вы добавите больше информации о соответствующем контроллере и ассоциации элементов пользователя, я могу помочь вам с этим

ОБНОВЛЕНИЕ:

Просто добавьте в ItemsController

def show
  @item = Item.find(params[:id])
end

Убедитесь, чточто у вас есть линия resources :items внутри routes.rb.

Я думаю, вам нужно больше узнать о контроллерах rails в руководствах

Кстати: в ruby ​​принято использовать snake_case для именования методов.Должно быть 'item_params', а не 'item_Params'

...