Update#1 Surprisingly if in Firebug, I change the generated <input> HTML to <a>, it works as expected. But to make this workaround permanent, I will have to change ActiveScaffold's code.
Update#2 For now I have changed the code of ActiveScaffold. This solves my problem. But the questions is still not answered.
I have a model ListingMovie:
class ListingMovie
has_many :movie_shows, :dependent => :destroy
belongs_to :movie
...
...
end
and MovieShow:
class MovieShow
belongs_to :listing_movie
validates_presence_of :start_time, :end_time
end
I have Manage::ListingMoviesController:
class Manage::ListingMoviesController < Manage::BaseController
helper Mange::MovieShowsHelper
active_scaffold :listing_movie do |config|
config.columns = [:movie, :listing, :start_date, :end_date, :movie_shows]
config.columns[:listing].form_ui = :select
config.columns[:movie].form_ui = :select
end
protected
def self.active_scaffold_controller_for(klass)
return Manage::MoviesController if klass == Movie
return Mange::MovieShowsController if klass == MovieShow
end
end
and Manage::MovieShowsController
class Manage::MovieShowsController < Manage::BaseController
active_scaffold :movie_show do |config|
config.subform.columns = [:start_time, :end_time]
end
end
When I try to create/update a ListingMovie, I am shown a form that has a "Create Another Movie Show" the end. Earlier when I clicked it, it made an Ajax request and added two new fields at the bottom of the form that let me specify start_time and end_time for associated MovieShow. Now When I click on it, no request is made to the server. And hence new fields are not added to the form.
Following is the HTML of the button:
<input data-remote="true" href="/manage/listing_movies/edit_associated?association=movie_shows" id="as_manage__listing_movies--movie_shows-subform-create-another" style="" type="button" value="Create Another Movie show">
I am unable to debug this as I can see any errors. Clicking the button simply does nothing.
One thing to notice is that if I put some erroneous data in the form and then try to "Create/Update" a ListingMovie, the form is rendered again with a "new" form fields to specify start_time and end_time.
I am using Rails 3.0.1 and ActiveScaffold 3.0.6 Thanks!