Berilgan rol uchun barcha maydonlarga attr_accessible ilovasi

Men ma'lum bir rol uchun modeldagi barcha maydonlarga attr_accessible ni osongina qo'llash usulini izlayapman, shunda men administrator konsolimdagi barcha maydonlarni ommaviy belgilashim mumkin. Men shunga o'xshash narsani qilmoqchiman:

    class User < ActiveRecord::Base
         attr_accessible :name
         attr_accessible :all, :as => :admin
    end

Foydalanish: barchasi aniq ishlamaydi. attr_accessible ni barcha maydonlarga ro'yxatga kiritmasdan qo'llashning oson yo'li bormi, chunki menda ularning ko'pi bor va har safar maydon qo'shganimda buni qilishni eslashni xohlamayman.


person k_day    schedule 21.01.2013    source manba


Javoblar (3)


Men sizdan har bir maydonni qo'shish uchun vaqt ajratishingizni so'rayman, chunki bu sizga attr_accessible bo'lishi kerakligi haqida o'ylash imkoniyatini beradi. Aytgancha, buni amalga oshirish mumkin:

columns.each do |column|
  attr_accessible column.name.to_sym, :as => :admin
end
person Josh Rieken    schedule 21.01.2013
comment
Ehtimol, attr_accessible column.name.to_sym, :as => :admin - person Jim Deville; 21.01.2013
comment
Bu ishlaydi, rahmat Josh. Men administrator panelidagi istalgan maydonni qo‘lda tahrirlashni xohlayman, shuning uchun hammasini qo‘shmoqchiman. Standart rol ostida attr_accessible ga qaysi maydonlarni qo'shishim haqida juda ehtiyotkorman. Aniqlik kiritish uchun, men qilayotgan ish xavfsizlikka xavf tug'dirmaydi, to'g'rimi? Administrator bo'lmagan foydalanuvchi uchun ommaviy ravishda tayinlangan rolni belgilashning imkoni yo'q, to'g'rimi? - person k_day; 21.01.2013
comment
Men bilishimcha, bu xavfsiz. - person Josh Rieken; 21.01.2013

Men ustun o'rniga column_names borligini qiziqtirgan edim:

(column_names - ['col1', 'col2', 'col3']).each do |column|
  attr_accessible column.to_sym
end
person Moin Haidar    schedule 22.05.2013

person    schedule
comment
Ushbu qatorni men yaratgan har bir modelda nusxa ko'chirish/joylashtirmasdan qanday qilib har bir modelda ishlashim mumkin? - person user566245; 26.08.2013
comment
Xavotirdan foydalaning. Bu SO =› stackoverflow-ga qarang. com/questions/14541823/ - person ALFmachine; 19.02.2019