Rails 1.0 blues

Discussion in 'Ruby' started by isamura, Jan 24, 2006.

  1. isamura

    isamura Guest

    I am a Rails nubee but not to web app development. I've been pouring over
    the docs and tutorials for a week or two. I think have enough knowledge to
    start developing, in baby-steps.

    At the moment I have a functioning guest-book with the usual CRUD operations
    that Rails is so good at. It works well for the single page, /slurp/topic.

    The problem is reuse. What is the natural Rails way to reuse the guest-book
    functionality in other controller pages, for example /book/review.

    Does one copy and paste code and templates (and create new table)? I hope
    not as this doesn't sound like a proper approach.

    Please say it ain't so and convince me not to go back... ;)

    TIA,

    ..k
     
    isamura, Jan 24, 2006
    #1
    1. Advertising

  2. isamura wrote:
    > I am a Rails nubee but not to web app development. I've been pouring over
    > the docs and tutorials for a week or two. I think have enough knowledge to
    > start developing, in baby-steps.
    >
    > At the moment I have a functioning guest-book with the usual CRUD operations
    > that Rails is so good at. It works well for the single page, /slurp/topic.
    >
    > The problem is reuse. What is the natural Rails way to reuse the guest-book
    > functionality in other controller pages, for example /book/review.
    >
    > Does one copy and paste code and templates (and create new table)? I hope
    > not as this doesn't sound like a proper approach.
    >
    > Please say it ain't so and convince me not to go back... ;)
    >
    > TIA,
    >
    > .k


    The models you produce are accessible from all controllers. If you
    create an "Entry" model then you can use it from any controller or
    directly from a view.

    For the views, rails uses a system of 'partials' for repeated content.
    If you want to have a common layout for guestbook entries you could
    create a file called '_entry.rhtml' (note the leading underscore).
    Within the same controller you can call "render :partial => 'entry'" to
    render this partial once. To access it from another controller use
    "render :partial => 'entries/entry'" (where 'entries' is the directory
    under ./views/ that the partial is found in.)

    Note that partials don't have access to the local variables of the
    original view. You need to pass these in under the option 'locals'.
    e.g. "render :partial => 'entry', :locals => {:entry => @entry}" will
    give the partial a local variable 'entry' containing the contents of
    @entry.

    If you want to iterate over an array of entries, rendering the partial
    for each one, use "render :partial => 'entry', :collection =>
    @entries". The partial will have the local variable with the same name
    as itself ('entry') set to the current entry to render.

    I hope this is a decent introduction and isn't too confusing. I started
    using rails about a month and a half ago and am absolutely loving it.
    The book "Agile Development with Rails" provides a very good
    introduction all the way from the very basics to advanced use of Rails'
    powerful environment. I highly recommend it.
     
    Timothy Goddard, Jan 24, 2006
    #2
    1. Advertising

  3. isamura

    T.Mak Guest

    If I am incorrect, someone please correct me, but I believe one of the
    goals of Rails is to be so efficient in use that you begin to forget
    about the holy grail of re-use. If I remember correctly, there is a
    comment on this by DHH while discussing the components feature of RoR.
    In my personal experience I try to use the composed_of feature of
    ActiveRecord and use generic objects to build "things". I have also
    found that use of a rcs has helped me in RoR code reuse.
     
    T.Mak, Jan 24, 2006
    #3
  4. isamura

    Mark Probert Guest

    qwikweb

    Hi ..

    I am looking for a mailing list manager in Ruby and I noticed QwikWeb
    (see RAA or http://qwik.jp). It looks ideal for my purposes, combining
    a Wiki with a mailing list.

    My only problem is that almost all of the documentation and web pages
    are in Japanese, not my strongest language. Has anyone done any work in
    English on this project? If so, care to share?

    Many thanks,

    --

    -mark.

    ----------------------------------------------------
    Mark Probert probertm at acm dot org
    ----------------------------------------------------
     
    Mark Probert, Jan 24, 2006
    #4
  5. isamura

    isamura Guest

    If this is a duplicate post, I do appologize...

    ..k

    "Timothy Goddard" <> wrote ...
    :
    <snip>
    :
    : The models you produce are accessible from all controllers. If you
    : create an "Entry" model then you can use it from any controller or
    : directly from a view.
    :
    Of course...

    : For the views, rails uses a system of 'partials' for repeated content.
    : If you want to have a common layout for guestbook entries you could
    : create a file called '_entry.rhtml' (note the leading underscore).
    : Within the same controller you can call "render :partial => 'entry'" to
    : render this partial once. To access it from another controller use
    : "render :partial => 'entries/entry'" (where 'entries' is the directory
    : under ./views/ that the partial is found in.)
    :
    I was actually using :partials in my attempts. Eventhough it worked ok
    I couldn't help but feel it doesn't quite meet my requirements.

    Further readings lead me to helpers (again not quite what I want) and
    components (render_component). BINGO! It seems components is
    what I was after.

    : Note that partials don't have access to the local variables of the
    : original view. You need to pass these in under the option 'locals'.
    : e.g. "render :partial => 'entry', :locals => {:entry => @entry}" will
    : give the partial a local variable 'entry' containing the contents of
    : @entry.
    :
    : If you want to iterate over an array of entries, rendering the partial
    : for each one, use "render :partial => 'entry', :collection =>
    : @entries". The partial will have the local variable with the same name
    : as itself ('entry') set to the current entry to render.
    :
    : I hope this is a decent introduction and isn't too confusing. I started
    : using rails about a month and a half ago and am absolutely loving it.
    : The book "Agile Development with Rails" provides a very good
    : introduction all the way from the very basics to advanced use of Rails'
    : powerful environment. I highly recommend it.
    :
    Clear as mudd ... ;)

    Seriously, a very decent explanation of render :partial that even connect
    the dots.

    Thanks Tim,

    ..k
     
    isamura, Jan 25, 2006
    #5
  6. isamura

    isamura Guest

    "Timothy Goddard" <> wrote ...
    :
    <snip>
    :
    : The models you produce are accessible from all controllers. If you
    : create an "Entry" model then you can use it from any controller or
    : directly from a view.
    :
    Of course...

    : For the views, rails uses a system of 'partials' for repeated content.
    : If you want to have a common layout for guestbook entries you could
    : create a file called '_entry.rhtml' (note the leading underscore).
    : Within the same controller you can call "render :partial => 'entry'" to
    : render this partial once. To access it from another controller use
    : "render :partial => 'entries/entry'" (where 'entries' is the directory
    : under ./views/ that the partial is found in.)
    :
    I was actually using :partials in my attempts. Eventhough it worked ok
    I couldn't help but feel it doesn't quite meet my requirements.

    Further readings lead me to helpers (again not quite what I want) and
    components (render_component). BINGO! It seems components is
    what I was after.

    : Note that partials don't have access to the local variables of the
    : original view. You need to pass these in under the option 'locals'.
    : e.g. "render :partial => 'entry', :locals => {:entry => @entry}" will
    : give the partial a local variable 'entry' containing the contents of
    : @entry.
    :
    : If you want to iterate over an array of entries, rendering the partial
    : for each one, use "render :partial => 'entry', :collection =>
    : @entries". The partial will have the local variable with the same name
    : as itself ('entry') set to the current entry to render.
    :
    : I hope this is a decent introduction and isn't too confusing. I started
    : using rails about a month and a half ago and am absolutely loving it.
    : The book "Agile Development with Rails" provides a very good
    : introduction all the way from the very basics to advanced use of Rails'
    : powerful environment. I highly recommend it.
    :
    Clear as mudd ... ;)

    Seriously, a very decent explanation of render :partial that even connect
    the dots.

    Thanks Tim,

    ..k
     
    isamura, Jan 25, 2006
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Dietrich
    Replies:
    1
    Views:
    668
    Joe Smith
    Jul 22, 2004
  2. Max
    Replies:
    0
    Views:
    471
  3. Akshay Kumar

    session state blues

    Akshay Kumar, Apr 1, 2004, in forum: ASP .Net
    Replies:
    0
    Views:
    323
    Akshay Kumar
    Apr 1, 2004
  4. Alap Ghosh

    Redirect Blues - Urgent Help needed

    Alap Ghosh, Jun 10, 2004, in forum: ASP .Net
    Replies:
    0
    Views:
    329
    Alap Ghosh
    Jun 10, 2004
  5. =?Utf-8?B?dHJ1ZmF1eA==?=

    Web part blues

    =?Utf-8?B?dHJ1ZmF1eA==?=, Nov 22, 2005, in forum: ASP .Net
    Replies:
    8
    Views:
    1,926
    Juan T. Llibre
    Nov 23, 2005
Loading...

Share This Page