Scriptaculous -- How do I access from Rails?

If I look at a page with a Scriptaculous example like:

http://www.gregphoto.net/sortable/advanced/

And I can view the html/js source of the page -- my question becomes, how do I implement this, or wire this into, my rails app? -Janna B

You need to , one way or another, generate the javascript that sets up the scriptaculous stuff (ie create instances of Sortable for appropriate dom elements and so on). There are helpers (draggable_element and so ) that sort of do this for you but personally I feel that most of that stuff is a bit of a crutch and that you'd be better off biting the bullet and learning enough javascript/scriptaculous that you can just write it on your own.

Fred

Thanks Fred, Yes, this is immensely frustrating -- I've lost 3 days working on this, and looking at examples that don;t cut it -- there is a vacuum of documentation really, and it seems to be a very RoR thing "Yes, this is fast and easy to do in RoR with this library/plugin/gem," but when you go to actually do it, you are left with total trial and error.

No wonder the dork frameworks like Java Struts are so much more prevelant. In truth, those frameworks may just be faster and easier to use -- I've been trying to accomplish things here that frankly don;t pay off in terms of the time curve. No one seems to know how to use the Scritpatuclous library's aside from mickey mouse effects.

-Janna B.

And I further agree with you -- I think we all need to bite the bullet and become js experts rather than depending on Rails to do it for us. The problem is, if I look at all this JS that I am seeing in this example, I am trying to discern where in my rails app I pick up these values? -Janna B.

Janna, this was mentioned at Railsconf 2009 during the Rails Core

Panel talk. It was actually the second question from the start of the

talk. In short, one should understand the underlying technologies

instead of trying to always abstracting it away.

-Conrad

Exactly -- or so I am learning. Look, the scriptaculous stuff. for instance, is laden with examples. Trying to do the same thing in rails, though purported to be "easier," and more expeditious, is actually a complete pain -- the absence of exampls & documentation really holds you back and squanders my time. Heneforth, as a matter of design philosophy, I think we are FAR better tos stick to html/ javascript/css and only use rails to tie back into on the server side.

THAT SAID....I am wondering where I tie rails into the source on:

http://www.gregphoto.net/sortable/advanced/

and if I cannot tie into it somehow, easily, might as well find a different mechanism than RoR -- to my way of thinking and my limited experience with RoR, if it cannot at least do that easily, it's pointless to pursue as a viable platform for web development. -Janna B.

Exactly -- or so I am learning. Look, the scriptaculous stuff. for instance, is laden with examples. Trying to do the same thing in rails, though purported to be "easier," and more expeditious, is actually a complete pain -- the absence of exampls & documentation really holds you back and squanders my time. Heneforth, as a matter of design philosophy, I think we are FAR better tos stick to html/ javascript/css and only use rails to tie back into on the server side.

THAT SAID....I am wondering where I tie rails into the source on:

Drag Drop

and if I cannot tie into it somehow, easily, might as well find a different mechanism than RoR -- to my way of thinking and my limited experience with RoR, if it cannot at least do that easily, it's pointless to pursue as a viable platform for web development. -Janna B.

At the end of the day, Rails is mostly a server side thing. In any sensible world your choice of front end tools (javascript libraries and so on) doesn't impact on the backend (be it rails, a php framework etc.).

Making a list like that with items from your app doesn't require big chunks of integration. create the html for the list items as you would for a completely static display (just ensuring that each element has a DOM id). Then you need to run the javascript that will setup the scriptaculous side of things. If you want to do exactly what that example website does then you might have to generate some javascript yourself (rails can make the script tags for you but then you need to fill in the blanks), or if what you want is what the scriptaculous helpers do then something like

<%= sortable_element 'message_list',     :url => sort_things_path,     :complete=> visual_effect(:highlight, 'message_list'),     :tag => 'div'%>

will do the trick.

Fred

Thank all of you gentleman very much. As I read your suggestions, it occurs to me that I have perhaps not modelled what I need to do smartly -- and that is making this further complicated. I have a number of models which I need t ocombine into a view. For instance, I have an players model, which I need to make a list of (batting order) (which is what I want to be able to drag into from the team, and out of), this list to occur on the left side of the view, and in the center, I will put rows containing informations (my info 'model' class) that have occured throughout the game, with various link_to's in he informations.

So I have all these data models that I must put into one composited view. And I am really lost now how one might do this in rails. I do not have a model for this compositied view (though, I could make one -- consistening of two arrays) but then how would I save all this in the db (right now I have info and player model) and the fact that the data for this composited view doesn;t need to be persisted. This really is at the core of my problems here I suppose - and I have no idea how to set this up. -Janna B