2012-01-19 3 views
1

У меня есть очень простой контроллер администратора в моем Rails 2 приложения, которое отображает все записи для модели только для чтения:Как я могу указать доступные действия ActiveScaffold для каждой записи?

class Admin::InspectionsController < ApplicationController 

    active_scaffold :inspections do |config| 
    [:create, :update, :delete].each {|a| config.actions.exclude a} 
    config.actions.exclude :nested 
    end 
end 

Я хочу, чтобы эти объекты модели для редактирования, но только если они находятся в определенном (т.е., прежде чем они будут одобрены). Я могу сделать это для всех Inspections путем удаления: обновление из списка исключений, но я не хочу разрешать редактирование оптом.

Есть ли способ указать условные действия для ActiveScaffold?

ответ

2

Я думаю, что вы ищете: https://github.com/activescaffold/active_scaffold/wiki/Security. Перейдите к разделу «Методы модели: ограничение любого другого»

Короче говоря, вы включаете все действия, а затем добавляете методы в определение модели для переключения указанных действий для каждой записи, как описано в ссылке.

+0

Yup, что хорошо выглядит, спасибо. Есть ли способ (не модифицирующий CSS), чтобы не отображать ссылки вообще? Мне нравится, что они отключены, но я бы даже не показал их ... – andrewdotnich

+0

Что-то вроде config.actions.exclude: delete,: show и т. Д. Будет работать – Achilles

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