I''m using the CRUD pattern for my domain model to get RESTful stuff for free. As such, I''ve got Users, Groups, and Membership models. I''m creating the UI for adding and removing users from groups. I want to click a user''s name and toggle them as included/excluded from a group. With CRUD this means creating and destroying Membership objects. For deleting, this wasn''t a problem. I could write something like: <%= link_to ''Delete'', membership_path(membership), :confirm=>''Are you sure'', :method=>:delete %> And get exactly what I wanted. However, I couldn''t figure out any way to create Membership objects as easily. Ideally it''d be something like this: <%= link_to user.name, memberships_path, :membership=>{:group=>group, :user=>user}, :method=>:post %> But I couldn''t figure out any way to pass params when :method=>:post. Is there a way to do this? My quick solution is to create a new method called link_to_post. Right now it looks like this: def link_to_post(anchor, path, *args) link = "<a href=\"#{path}\" \n" link = link + "onclick=\"var f = document.createElement(''form''); \n" link = link + "f.style.display = ''none''; \n" options = args.last.is_a?(Hash) ? args.pop : {} options.each do |option| var = option.first var = var.gsub(''['', ''_'') var = var.gsub('']'', ''_'') if option.last.is_a?(Hash) # place holder - want to implement arbitrary hashes of hashes else link = link + "var #{var} = document.createElement(''input''); \n" link = link + "#{var}.name = ''#{option.first}''; \n" link = link + "#{var}.type = ''text''; \n" link = link + "#{var}.value = ''#{option.last.to_param}''; \n" link = link + "f.appendChild(#{var}); \n" end end link = link + "this.parentNode.appendChild(f); \n" link = link + "f.method = ''POST''; \n" link = link + "f.action = this.href; \n" link = link + "f.submit(); \n" link = link + "return false;\">#{anchor}</a>" end It''s far from perfect. It can''t take in arbitrary hashes and the Javascript variable naming isn''t pretty. Right now I''m calling it with: <%= link_to_post user.name, memberships_path, ''membership[group_id]''=>group, ''membership[user_id]''=>user %> Ideally I''d like to see the regular link_to with :method=>:post take in parameters, but is this a good idea? Should I write this as a Rails bug fix or just keep using link_to_post for myself? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---