So, who is actually using rails components for anything other than displaying data? I''m using them, and hitting walls everywhere. I''d really like to compare notes with anyone else who is doing anything at all with components. I''ll got through a few of the problems I''m having with a simple and contrived example. Let''s say that you have a "To-Do List" controller, like in some of the basic rails examples. It works great, and you think to yourself, would it be cool if I could put these to-do lists in a few different places on my site. So, you start work on developing a to-do list controller. The first place you want to put one is on your home page. Your home page is displayed using a controller called "Pages", and an action called "Home". Your URL for this is: www.example.com/pages/home In your home action, you decide to render your list component with some code as follows: @list = render_component_as_string(:controller => todo, :action => list) And you display the @list somewhere in your view. This works beautifully, you can see the list, place it wherever you want, and because it''s loaded in your controller, you can enable it or disable it dynamically if you like. PROBLEM 1: Links in the component view So the component displays a list todo items, and each heading is a link to show them in more detail (for some reason). The link for the first one looks like (:controller => todo, :action => show, :id => 1). But hangon, when you click on this link, you end up at: www.example.com/todo/show/1 We were hoping to see our little todo list box display some different content, but instead it''s going to change the location of the entire page. What''s worse is that the URL above doesn''t even work. There is no todo controller in our controller directory anymore, because we''ve moved it into a component directory. I''ve had to solve this by displaying the links a bit like this in my component view: <%= @path + ''show/'' + list_item.to_param.to_s %> The @path is loaded by my component, and contains the base path at which the component was loaded (eg: www.example.com/pages/home), which I had to pass in as a parameter to render_component when I loaded it. This is ugly, but it works. I think that we can do better though. Any ideas? PROBLEM 2: Post backs This one is even worse. Like above, but you want to edit a todo list item. How do you post back to the home page, and give the information to the component. Not only do you have to do something really ugly with the component form like: <%= start_form_tag(:action => ''show'', :name => @path + ''/edit/'' + @todo_item.to_param.to_s) %> (and a fair bit more magic that that is actually required to make this work, please contact me if you would like real code) But also, how do you ensure that the component actually gets the posted data? The data gets sent to your home controller. It doesn''t pass it through to the component unless it decides to, and how should it (or why should it) decide to do that? I''ve encountered a few other little probs, but those are the main ones. Does anyone else have opinions on this? regards, Craig