Getting a remote form to submit within a partial collection when any select changes in Ruby on Rails
Streamline remote form submissions in Ruby on Rails with dynamic select changes using JavaScript callbacks for smoother user interactions.
Duration: 1:29 | Size: 1.7 MB
This one is harder than it seems. But, I figured out a way. The trick and breakthrough came from Teflon Ted.
With a regular form, you could do this in your select statement:
:onChange=>"this.form.submit();"
This won’t work with a remote form, because the submission is not handled with the submit method but rather within the JavaScript callback in onsubmit. So, with a remote form, you have to change it to this:
:onChange=>"this.form.onsubmit();"
So, here is my code.
<%- remote_form_for
:user,
user,
:url=>{:action=>'update_remote', :id=>user.id},
:html=>{:id=>'form_'+user.id.to_s},
:loading=>"Element.show('spinner_"+user.id.to_s+"'); Form.disable('form_"+user.id.to_s+"')"
do |f|
-%>
<%= f.select
:project_id,
Project.find(:all).collect{|p| [p.name,p.id]},
{:include_blank=>false, :selected=>user.project_id},
{:onChange=>"this.form.onsubmit();", :id=>'user_project_id_'+user.id.to_s}
%>
<%- end -%>
>%= image_tag 'spinner_arrows.gif' %< Saving...
Note that this is in a partial that gets iterated over a collection. So, I have to give everything a unique id in the HTML. Also, note that this includes the user of a spinner to show activity is taking place. I also like to disable the form temporarily to make sure nothing else gets selected. I don’t have to hide the spinner or reactivate the form because when the table row gets regenerated via RJS, it goes back to the default condition.
Nobody takes you aside anymore
Print taught a generation when to stop. What we lose when the machines absorb the constraints that used to form us.
Your AI agents need a water cooler
Coordination is a property of the room, not the org chart. What that means when your coworkers are agents.
On the death of the author and the birth of the detector
Why worrying about AI authorship is lazier, and more prejudiced, than it looks.
The work of being available now
A book on AI, judgment, and staying human at work.
The practice of work in progress
Practical essays on how work actually gets done.
How to manage content for multiple clients without flattening their voices
How to manage content for multiple clients without their voices blurring into one house style: a workspace and a voice profile per client, batchable stages, and approval buffers.
Why does AI writing sound generic? It has nothing to work with
Why does AI writing sound generic? Because the model has none of your perspective, examples, constraints, or stakes to work with. The fix is interview-first, not better adjectives.
How to train AI to write in your voice, not your vibe
How to train AI to write in your voice isn't a prompt trick. It's a system: writing samples, interview answers, keep/avoid lists, revision loops, and approval gates.
Nomethoderror (undefined method `finder’) with engines and Rails 2.2
Fix the NoMethodError with ActionMailer in Rails 2.2 by applying a simple patch. Save time and troubleshoot efficiently with our guide.
Rails + sugarcrm - an alternative approach
Discover a faster, simpler way to connect Rails with SugarCRM by accessing the database directly, avoiding slow API calls for seamless synchronization.
Rails + sugarcrm + soap - get a list of sugar accounts into Rails as an array
Integrate SugarCRM with Rails using SOAP to effortlessly sync company names and streamline your project management workflow.