2011-08-10 61 views
2

更新#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 谢谢!

回答

2

您不能在输入标签中使用href。 定义一个onclick事件按钮或使用它的ANCOR标签

<a href="/manage/listing_movies/edit_associated?association=movie_shows"> 
<input data-remote="true" id="as_manage__listing_movies--movie_shows-subform-create-another" style="" type="button" value="Create Another Movie show"> 
</a> 

内,这可能对你有帮助

http://htmlhelp.com/reference/html40/forms/button.html

+0

而不是把一个'input'标签'anchor'标签内,我只使用'anchor'标签。 – Waseem

相关问题