@user.is_owner_of @menu
This will create Role with @user having @menu,
then:
return true if @user.is_owner_of @menu
OR
you can make:
@user.has_role "menu_owner"
@menu.accept_role "menu_owner"
This will make new role for @user naming "menu_owner" and make @menu
accept ANY user having "menu_owner" permission.
then:
if @user.is_menu_owner_of @menu do {}
This is works well.
On Sep 9, 6:14 am, "sunny beach"
<sunnybeach1...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> My problem is similar to the thread from the rails forum:
>
> Creating Two Models in One Formhttp://railsforum.com/viewtopic.php?id=717
> ==>
> I am using acts_as_authenticated and role_requirement and a model called
> "menu" all in one controller "Account" (from acts as
authenticated). For
> various reasons I wanted menu items to be different than roles. I have
> everything working on a basic level.
>
> What I want to do is assign a set of menu items and roles upon signup.
>
> The attempt below will create a new menu when signing up (not what I want
to
> do). Ideally I could get the controller to look at a field in the database
> for each table and see if it matched "default" or some other
value.
>
> def signup
> @user = User.new(params[:user])
> @menu = @user.menus.build(attributes={:id => 1})
> return unless request.post?
> @user.save!
> self.current_user = @user
> redirect_back_or_default(:controller =>
''/welcome'', :action => ''index'')
> flash[:notice] = "Thanks for signing up!"
> rescue ActiveRecord::RecordInvalid
> render :action => ''signup''
> end
>
> I was even thinking about some kind of "after_save()" action that
would
> assign menu items and roles while the user gets a "thanks for signing
up"
> page. I have not used this before so i am not exactly sure how to use it.
>
> Any advice would be appreciated.
>
> Sunny
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Thanks for the suggestion but I am not able to get it to work right. I am going to try to re-word the original thought: When someone signs up I would like to save the information they are sending (params[:user]) and add a relationship to an existing menu (in a has_and_belongs_to_many situation). So when user xxx signs up (and becomes id=5) there is an entry in the menus_users table that is (menu_id 1/user_id 5). This menu (id=1) already exists. Thanks, Sunny On Sep 9, 5:42 am, "alexey.Creopolis" <alex.creopo...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> @user.is_owner_of @menu > This will create Role with @user having @menu, > then: > return true if @user.is_owner_of @menu > > OR > > you can make: > @user.has_role "menu_owner" > @menu.accept_role "menu_owner" > This will make new role for @user naming "menu_owner" and make @menu > accept ANY user having "menu_owner" permission. > then: > if @user.is_menu_owner_of @menu do {} > > This is works well. > > On Sep 9, 6:14 am, "sunny beach" <sunnybeach1...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > My problem is similar to the thread from the rails forum: > > > Creating Two Models in One Formhttp://railsforum.com/viewtopic.php?id=717 > > ==> > > I am using acts_as_authenticated and role_requirement and a model called > > "menu" all in one controller "Account" (from acts as authenticated). For > > various reasons I wanted menu items to be different than roles. I have > > everything working on a basic level. > > > What I want to do is assign a set of menu items and roles upon signup. > > > The attempt below will create a new menu when signing up (not what I want to > > do). Ideally I could get the controller to look at a field in the database > > for each table and see if it matched "default" or some other value. > > > def signup > > @user = User.new(params[:user]) > > @menu = @user.menus.build(attributes={:id => 1}) > > return unless request.post? > > @user.save! > > self.current_user = @user > > redirect_back_or_default(:controller => ''/welcome'', :action => ''index'') > > flash[:notice] = "Thanks for signing up!" > > rescue ActiveRecord::RecordInvalid > > render :action => ''signup'' > > end > > > I was even thinking about some kind of "after_save()" action that would > > assign menu items and roles while the user gets a "thanks for signing up" > > page. I have not used this before so i am not exactly sure how to use it. > > > Any advice would be appreciated. > > > Sunny--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I wanted to go ahead and post my solution for this thread of
questions.
In this scenario the menus table has a column called "kind" and some
of the records are named "default".
def signup
@user = User.new(params[:user])
return unless request.post?
@user.save!
self.current_user = @user
current_user.menus = Menu.find_all_by_kind(''default'')
redirect_back_or_default(:controller => ''/welcome'',
:action =>
''index'')
flash[:notice] = "Thanks for signing up!"
rescue ActiveRecord::RecordInvalid
render :action => ''signup''
end
Sunny
On Sep 12, 12:57 pm, Sunny Beach
<sunnybeach1...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> Thanks for the suggestion but I am not able to get it to work right.
>
> I am going to try to re-word the original thought:
>
> When someone signs up I would like to save the information they are
> sending (params[:user]) and add a relationship to an existing menu (in
> a has_and_belongs_to_many situation).
>
> So when user xxx signs up (and becomes id=5) there is an entry in the
> menus_users table that is (menu_id 1/user_id 5). This menu (id=1)
> already exists.
>
> Thanks,
> Sunny
>
> On Sep 9, 5:42 am, "alexey.Creopolis"
<alex.creopo...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> wrote:
>
> > @user.is_owner_of @menu
> > This will create Role with @user having @menu,
> > then:
> > return true if @user.is_owner_of @menu
>
> > OR
>
> > you can make:
> > @user.has_role "menu_owner"
> > @menu.accept_role "menu_owner"
> > This will make new role for @user naming "menu_owner" and
make @menu
> > accept ANY user having "menu_owner" permission.
> > then:
> > if @user.is_menu_owner_of @menu do {}
>
> > This is works well.
>
> > On Sep 9, 6:14 am, "sunny beach"
<sunnybeach1...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > > My problem is similar to the thread from the rails forum:
>
> > > Creating Two Models in One
Formhttp://railsforum.com/viewtopic.php?id=717
> > > ==>
> > > I am using acts_as_authenticated and role_requirement and a model
called
> > > "menu" all in one controller "Account" (from
acts as authenticated). For
> > > various reasons I wanted menu items to be different than roles. I
have
> > > everything working on a basic level.
>
> > > What I want to do is assign a set of menu items and roles upon
signup.
>
> > > The attempt below will create a new menu when signing up (not
what I want to
> > > do). Ideally I could get the controller to look at a field in the
database
> > > for each table and see if it matched "default" or some
other value.
>
> > > def signup
> > > @user = User.new(params[:user])
> > > @menu = @user.menus.build(attributes={:id => 1})
> > > return unless request.post?
> > > @user.save!
> > > self.current_user = @user
> > > redirect_back_or_default(:controller =>
''/welcome'', :action => ''index'')
> > > flash[:notice] = "Thanks for signing up!"
> > > rescue ActiveRecord::RecordInvalid
> > > render :action => ''signup''
> > > end
>
> > > I was even thinking about some kind of "after_save()"
action that would
> > > assign menu items and roles while the user gets a "thanks
for signing up"
> > > page. I have not used this before so i am not exactly sure how to
use it.
>
> > > Any advice would be appreciated.
>
> > > Sunny
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---