我正在尝试通过 AJAX 提交表单。我认为这应该是一件简单的事情,但它坚持以常规形式发布......
更新
这个表单存在于另一个表单中,它不是 AJAX 化的,还是相关的?这会导致问题吗?
我得到的错误
LinkWidgetsController#create 中的参数错误
[/Users/victorstan/Sites/portrait/app/views, /Users/victorstan/.rvm/gems/ruby-1.9.2-p290@portrait/gems/devise-1.5.1/ 中没有 LinkWidgetsController 的默认布局应用程序/视图]
相关代码:
路线
resources :profiles do
resource :link_widgets #this handles the form requests for create
member do
get 'new_link_widget' #this handles the form requests for new
end
resources :pages
end
控制器
class LinkWidgetsController < ActionController::Base
before_filter :authenticate_user!
load_and_authorize_resource
def create
@link_widget = LinkWidget.new(params[:link_widget])
respond_to do |format|
if @link_widget.save
format.js { render :js => @link_widget, :status => :created, :layout => !request.xhr? }
else
logger.debug @link_widget.errors.inspect
format.js { render :js => @link_widget.errors, :status => :unprocessable_entity }
end
end
end
end
部分的
%hr
= form_for [@profile, @link_widget], :remote => true, :format => :js do |f|
.field
= f.label :provider
= f.select(:provider, options_for_select(f.object.providers, f.object.provider))
.field
= f.label :link
= f.text_field :link, size: 37, class: 'input-width'
.field
= f.label :title
= f.text_field :title, size: 37, class: 'input-width'
%div
%small.form-help-text If you set an optional title, it will show up beside the icon as a link
.field
= f.label :order
= f.text_field :order, size: 2
- unless f.object.new_record?
.field
= f.label :delete
= f.check_box :_destroy
= f.hidden_field :profile_id
.actions
= f.submit 'Save', class: 'right'
.clear