Кнопка «Создать еще один XXX» не работает в ActiveScaffold - PullRequest
2 голосов
/ 10 августа 2011

Обновление # 1 Удивительно, но если в Firebug я меняю сгенерированный HTML на , он работает как положено. Но чтобы сделать этот обходной путь постоянным, мне придется изменить код 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

У меня есть 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

и Управление :: MovieShowsController

class Manage::MovieShowsController < Manage::BaseController
  active_scaffold :movie_show do |config|
    config.subform.columns = [:start_time, :end_time]
  end
end

Когда я пытаюсь создать / обновить ListingMovie, мне показывают форму с завершением «Create Another Movie Show». Ранее, когда я щелкнул по нему, он сделал запрос Ajax и добавил два новых поля внизу формы, которые позволили мне указать start_time и end_time для связанного MovieShow. Теперь, когда я нажимаю на него, к серверу не делается никаких запросов. И, следовательно, новые поля не добавляются в форму.

Ниже приведен 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 Спасибо!

1 Ответ

2 голосов
/ 10 августа 2011

Вы не можете использовать 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

...