I had that same need time ago. I solved it this way:
- permissions as fields in Role:
create_item :boolean, :default => false
update_item :boolean, :default => false
delete_item :boolean, :default => false
create_category :boolean, :default => false
....etc....
habtm :roles :users
roles_controller:
active_scaffold :role do |config|
Role.columns.collect{ |c| c.name if c.type
== :boolean }.compact.each{ |c|
config.columns[c].form_ui = :checkbox
config.columns[c].inplace_edit = :true
config.columns[c].weight = 3 # to get name as first column and
checkboxes all together
}
end
this will give you a big table which lets you have a global view of
permissions and change them without "editing" role by role, just
clicking checkboxes over the big table.
and for the users:
active_scaffold :user do |config|
config.columns[:roles].form_ui = :multi_select
## ..etc...
end
On Jan 12, 10:17 am, "Sergio Cambra .:: entreCables - Symbol Servicios
Informáticos S.L. ::." <[email protected]> wrote:
> El Monday 12 January 2009 12:34:51 DJ escribió:
>
> > Hi
> > Sergio
> > I could not understand why i need a select box for roles
> > in roles controller? I simply need check boxes for roles in user's
> > creation or updation . Also abt the roles, i have separate model by
> > which i can create , update and delete roles.
> > Now as user and roles maintains HABTM relationship so i should be able
> > to fetch roles for each user for both create and update operation.
>
> In your users controller you should have a roles column and you have to set
> select form_ui for it.
>
> class User < ActiveRecord::Base
> has_and_belongs_to_many :roles
> end
>
> class Role < ActiveRecord::Base
> has_and_belongs_to_many :users
> end
>
> class UsersControllers < ApplicationController
> active_scaffold do |config|
> config.columns[:roles].form_ui = :select
> end
> end
>
>
>
>
>
> > And i indeed done one select interface in one of my controller like->
>
> > module EmployeesHelper
> > def user_column(record)
> > if record.user.nil?
> > ""
> > else
> > record.user.id
> > end
> > end
>
> > def user_form_column(record,input_name)
> > options = User.find(:all).collect do |c|
> > [ c.email, c.id ]
> > end
> > select :record, :user_id, options, {:include_blank =>
> > false, :prefix => input_name},
> > {:name => input_name + '[id]'}
> > end
>
> > end
>
> > and then config.columns[:user].form_ui = :select in userscontroller.
>
> You don't need those helpers to use a select form_ui, it's builtin in active
> scaffold, you only have to set form_ui to association column. Try setting
> form_ui and removing user_form_column.
>
> If you add a to_label method to user, it will be used to show users in select
> and in list, so you can remove user_column helper too.
>
>
>
>
>
> > I do hope , i am not missing anything
> > Dwija
>
> > On Jan 12, 3:27 pm, "Sergio Cambra .:: entreCables - Symbol Servicios
>
> > Informáticos S.L. ::." <[email protected]> wrote:
> > > El Monday 12 January 2009 11:19:22 DJ escribió:
> > > > Hi
> > > > Groups
> > > > I am trying to show a group of check boxes along with
> > > > their boolean values for a HABTM relationship say
>
> > > > has_and_belongs_to_many :roles
> > > > has_and_belongs_to_many :users
>
> > > > so the roles table are ->
> > > > id name type
> > > > 1 create ..
> > > > 2 read ..
> > > > 3 update ..
>
> > > > users tables->
> > > > id name email
> > > > 1 admin ...
> > > > 2 harry ...
>
> > > > roles_user table->
>
> > > > role_id user_id
> > > > 1 1
> > > > 1 2
> > > > 2 2
>
> > > > What i am trying is to show the check boxes for every role name along
> > > > with their boolean values(checked or not) in each users update form.
> > > > I have tried with name_form_column in user helper function but could
> > > > not get the desired result. Are their any better way?
>
> > > Have you tried to set :select to form_ui?
> > > config.columns[:roles].form_ui = :select
>
> > > --
> > > Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
> > > Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
> > > T) 902 021 404 F) 976 52 98 07 E) [email protected]
>
> --
> Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
> Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
> T) 902 021 404 F) 976 52 98 07 E) [email protected]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"ActiveScaffold : Ruby on Rails plugin" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/activescaffold?hl=en
-~----------~----~----~----~------~----~------~--~---