我有一個在lightbox中顯示的提交表單。我對錶單進行了相當嚴格的驗證,但在某些情況下,播放列表已經提交,在這種情況下,我無法在提交表單前判斷。如何在不刷新頁面的情況下顯示flash錯誤?
目前我有:disable_with => 'Submitting...'
如果錯誤被送回形式這將是完全真棒,並提交按鈕將重新啓用。
這可能沒有太多的併發症?
我也有第二個相關的問題...因爲我的表單是在一個燈箱,它的代碼實際上在索引頁面上(我的應用程序只是一個頁面)。這意味着我的索引操作中沒有「新」動作,而是@playlist = Playlist.new(:title => ...)
(以及@playlists = Playlist.all
等)。在我的路線中,我做到了這一點:resources :playlists, :only => [:create]
這聽起來正確嗎?
編輯:這是一些代碼,雖然它基本上和你想象的一樣簡單。
以下類型的作品...它創建播放列表,如果它有效,否則它什麼也不做。兩次都create.js.erb被稱爲..我只是不現在如何使這項工作現在完成。在成功時,我需要關閉窗口,在失敗時我需要將錯誤加載到已經在屏幕上的窗體中。林不知道那個地方去,但:/
before_filter :load_genres, :only =>[:index, :user]
before_filter :new_playlist, :only => [:index, :new]
def index
@playlists = Playlist.order('created_at DESC').page(params[:page]).per(30)
end
def create
@playlist = Playlist.new(params[:playlist])
respond_to do |format|
if @playlist.save
format.html { redirect_to root_path, :notice => "Playlist submitted" }
format.js {}
else
format.html { render :action => :new, :layout => !request.xhr? }
format.js {}
end
end
end
def new
end
def load_genres
@genres = Genre.order(:name)
end
def new_playlist
@playlist = Playlist.new(:title => params[:title], :url => params[:url], :description => params[:description])
end
繼承人的第一像我的形式(位於index.html.erb):
<%= form_for @playlist, :remote => true do |f| %>
我目前還沒有HTML或代碼create.html.erb
我增加了一些代碼 – Tallboy