开发者

Ruby on rails, cancan and default role assignment

I have built a small ruby webservice, in this I have implemented cancan authorization.

I followed this tutorial. The problem is that, I can't find out the way to assign at the user, when they do the registration to my site, the base role level.

I find out to do this with a checkbox, but it's not what I want. My idea was to put this assignment directly into the reg开发者_如何转开发istrations_controller, but I failed to save the role.

I hope that somebody can help me.

Thank you.


This is what worked for me

user.rb:

  after_create :default_role

  private
  def default_role
    self.roles << Role.where(:name => 'User').first
  end


I had the same problem, but I am using embedded association from rbates: http://railscasts.com/episodes/189-embedded-association

user.rb:

before_create :default_role

private
def default_role
 self.roles = ['client']
end

Works like a charm, but pay attention that the hook is before_create, not after_create, because the before_create runs just before the insert operation.
The after_create is after the insert operation, which in my case is late.


I have rebuild the migration, I have unified the user and role tables, so now I can assign all without problem.

Thank you.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜