Hello,
Its really strange.
Are you defined in your User model
          
            column_map => { id_user => 'id_movie' }, ?
in my case 
type => 'one to one';
works great
Also may be you have wrong (not optimal) database structure  ?




пятница, 30 октября 2015 г., 2:37:57 UTC+3 пользователь henq написал:
>
> Hi all, 
> I am using Rose::DB::Object in combination with Mojo. 
> I have hit on an issue, though for the simple case I also have a 
> workaround. The point is that in a Mojo .ep template, the call of a 
> method, generated (I guess) from a defined 'relationship', does not 
> work. To be more precise, the call only seems to work if before the 
> rendering of the template the same method is called in the calling 
> controller. 
> In the code snippets below the problematic method is movies(). 
> So how should we use (or not use) these pseudo-methods of Rose::* in 
> Mojo's .ep templates? 
>
> In the User model, a relationship 'movies' is defined 
>     #User.pm 
>     use base qw(MyApp::DB::Object); 
>     __PACKAGE__->meta->setup ( 
>       table      => 'users', 
>       unique_key => ['user_name'], 
>       auto       => 1, 
>       relationships => 
>       [ movies => 
>          { 
>            type         => 'many to many', 
>            map_class    => 'MyApp::Models::UserMovie', 
>            manager_args => { with_map_records => 1 }, 
>          }, 
>        ] 
>
> In the controller, it seems the call $u->movies is needed; 
>    #UserController.pm 
>    my $u = 'MyApp::Models::User'->new(user_name => $user_name); 
>    $u->load; 
>    $u->movies;   #needed !? 
>    $shift->stash( user_obj => $u ); 
>    #render template 
>
> In the template, ->movies is called but only works if same call is 
> done in controller first. 
>    #template.html.ep 
>    % foreach( @{$user_obj->movies} ) {      #works only if $u->movies 
> called in controller. 
>        .... 
>    % } 
>
> Regards, 
> Henk 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.

Reply via email to