how to update a table which is connected with joins

hi all there are two tables Student and Batch in there model i have has_and_belongs_to_many :graduated_batches, :class_name => ‘Batch’, :join_table => ‘batch_students’ in Student table and has_and_belongs_to_many :graduated_students, :class_name => ‘Student’, :join_table => ‘batch_students’ in Batch table which are connected to a table called “batch_students” i have added a new column to batch_students table and i want to update the value in batch_students table. How can i update values in batch_students table where there is no model for that table so that i can update directly.how to update table which is in joins.

thanks in advance

Sounds like you want to change those habtm relationships to "has_many :through => :batch_students"

no with our changing the relationship can i update values.

thanks in advance

hi all help me out guys

thanks in advance

How about:

I didn't tried it, but you may probably write Students.execute('update anytable set .....')

by TheR

We did - you refused to do it :-/

Let's just restate your position: You want to have a habtm join, with extra information in the join table. This type of join typically does not have a model, and thus no way of updating those extra fields (although a "feature" of Rails does/did extend columns in the join table to both sides of the association). You don't want to add a new model and join through it (the way it would be done normally). So you see the circular problem you have...

Let's take one step back; rather than demanding that people "help you out", maybe you can explain *why* you don't want to change your association...

thanks for your reply guys. hi Michael Pavling i can not change my relationship because i have used in many other places if i change relationship i have to make more changes in my app that is y i can not change my relationship.

thanks in advance

So instead of doing a refactor to support the new functionality you want (a moderately fiddly job to change "many other places" - but an opportunity to DRY them up...), you're going to plan to bodge in something that will make it practically impossible to ever refactor this area of code in the future. This will make any future functionality changes in this area an absolute nightmare.

Google "technical debt".