更新#1令人惊讶的工作,如果在Firebug,我改变产生<输入> HTML到<一个>,它按预期工作。但为了使此解决方案永久化,我将不得不更改ActiveScaffold的代码。“创建另一个XXX”按钮不ActiveScaffold
更新#2现在我已经改变了ActiveScaffold的代码。这解决了我的问题。但问题仍然没有答案。
我有一个模型ListingMovie:
class ListingMovie
has_many :movie_shows, :dependent => :destroy
belongs_to :movie
...
...
end
和MovieShow:
class MovieShow
belongs_to :listing_movie
validates_presence_of :start_time, :end_time
end
我有管理:: 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
和管理:: MovieShowsController
class Manage::MovieShowsController < Manage::BaseController
active_scaffold :movie_show do |config|
config.subform.columns = [:start_time, :end_time]
end
end
当我尝试创建/更新ListingMovie时,我显示了一个具有“创建另一个电影放映”结尾的表单。之前当我点击它时,它发出了一个Ajax请求,并在表单底部添加了两个新字段,让我可以为关联的MovieShow指定start_time和end_time。现在,当我点击它时,服务器没有请求。因此新的字段不会添加到表单中。
以下是按钮的HTML:
<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">
我无法调试这是我所看到的任何错误。点击按钮根本不会做任何事情。
需要注意的一件事是,如果我在表单中放入了一些错误的数据,然后尝试“创建/更新”ListingMovie,则会使用“新”表单字段再次呈现表单以指定start_time和end_time。
我使用Rails 3.0.1和ActiveScaffold 3.0.6 谢谢!
而不是把一个'input'标签'anchor'标签内,我只使用'anchor'标签。 – Waseem