Forum: Ruby on Rails How to make a model or a model decorator aware of its controller in Rails?

Posted by Alexey Muranov (alexey_m)
on 2012-10-04 12:12
(Received via mailing list)
Is a decorator, like Draper, a good place to store the controller and
routes associated with a given model?

I would like to be able to pass one or several model objects to a 
generic
view, and have the view automatically generate links to the actions
associated with the objects.  Like this:

link_to object.public_send(attribute),
        { :controller => object.controller_path,
          :action     => :show,
          :id         => object.id }


Thank you for any suggestions of what would be a common practice.

I have also posted this question on
SO: http://stackoverflow.com/questions/12713784.
Posted by Alexey Muranov (alexey_m)
on 2012-10-08 10:39
(Received via mailing list)
I will answer myself: i think a decorator is not a good place to store 
an
associated controller, a decorator should only know about model data and
HTML markup.  I am still looking for a good solution.
Posted by Matt Jones (Guest)
on 2012-10-08 19:38
(Received via mailing list)
On Monday, 8 October 2012 01:38:22 UTC-7, Alexey wrote:
>
> I will answer myself: i think a decorator is not a good place to store an
> associated controller, a decorator should only know about model data and
> HTML markup.  I am still looking for a good solution.


In your example, the controller path seems *highly* relevant to 
generating
HTML markup...

--Matt Jones
Posted by Brett Mchargue (ebrett)
on 2012-10-08 20:39
(Received via mailing list)
You could check out http://objectsonrails.com/ and
https://github.com/objects-on-rails/display-case - as it says, it
brings together the model and context (which could be a controller)

brett
Posted by Alexey Muranov (alexey_m)
on 2012-10-12 09:25
(Received via mailing list)
On Monday, October 8, 2012 7:37:21 PM UTC+2, Matt Jones wrote:
> In your example, the controller path seems *highly* relevant to generating
> HTML markup...
>
> --Matt Jones
>
>
Matt, i do not agree: if my application changes the host, or i decide to
change route names or controller names, the link urls will change, but 
html
tags or model behavior will not. I think controller awareness should be
added on a different level, not in a decorator (single responsibility
principle).

-Alexey.
Posted by Alexey Muranov (alexey_m)
on 2012-10-12 09:27
(Received via mailing list)
On Monday, October 8, 2012 11:02:19 AM UTC+2, Brett McHargue wrote:
>
> You could check out http://objectsonrails.com/ and
> https://github.com/objects-on-rails/display-case - as it says, it
> brings together the model and context (which could be a controller)
>
> brett
>
> Thanks, i'll look into it.

-Alexey.
Posted by Alexey Muranov (alexey_m)
on 2012-10-13 22:50
(Received via mailing list)
On Monday, October 8, 2012 11:02:19 AM UTC+2, Brett McHargue wrote:
>
> You could check out http://objectsonrails.com/ and
> https://github.com/objects-on-rails/display-case - as it says, it
> brings together the model and context (which could be a controller)
>
> brett


I do not know if i will be able to apply it to my problem, but this
tutorial is very interesting and helpful, thanks.

- A.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.