Я строю простую настройку ActiveAdmin, чтобы получить мои ноги влажными с базовым кодом администратора в RoR. Ничего особенного. Я создал контроллер «пост» и ресурс и модель, как показано ниже. Моя проблема заключается в том, что я до сих пор получаю следующее сообщение об ошибке:Что такое «неопределенный метод« рельсы »и как его исправить?
NoMethodError in Admin::PostsController#index
undefined method `rails' for #<Admin::PostsController:0x00000107ad3038>
это правильно в том, что я не определен метод rails
, но я также не назвал один. На самом деле, нет метода rails
, который называется где угодно в любом из моего кода. Это заставляет меня думать, что у меня есть проблема синтаксиса где-то, но я не могу найти его. Пожалуйста, помогите мне разобраться в этом.
/admin/post.rb
ActiveAdmin.register Post do
scope_to :rails
permit_params :title, :slug, :blurb, :content, :category_id
index do
column :title
column :slug
column :blurb
column :created_at
actions
end
form :html => {:enctype => "multipart/form-data"} do |f|
f.inputs "Details" do
f.input :title
f.input :slug
f.input :blurb
f.input :category
f.input :content, :as => :text
end
f.inputs "Images" do
f.input :image, :label => 'Post Image', :as => :file
end
f.actions
end
end
/controllers/posts_controller.rb
class PostsController < ApplicationController
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
end
/models/post.rb
class Post < ActiveRecord::Base
belongs_to :category
scope :rails, -> { where(category_id: 1) }
end
Как вы можете видеть, я никогда не называю любой rails
метод в моем коде. Откуда эта ошибка?
закомментировать 'scope_to: rails' линия работала как шарм! Почему это работает? И какой блок контроллера вы добавили? – elersong
хорошо, что вы поставили задачу ограничить должности категории category_id 1 в вашей модели. Я понятия не имею, почему вы это сделали. Я просто дал вам код, чтобы сделать эту работу. – manishie
Я думаю, вы только что скопировали этот код откуда-то. Поэтому, если вам не нужно изменять область действия, просто избавитесь от нее. – manishie