在我看来,我有这段代码:
<%= form_for :folder_name, :remote => true, :method => "get", :url => {:action
=> "show_workflow_list"} do |f| %>
<%= f.select :foldernames, options_for_select(@folders, @folders.first), {}, {:onchange => ("this.form.submit()")}%><br /><br />
<%= hidden_field_tag 'selected_domain', params[:domain_selected] %>
当我更改下拉列表中的值时,表单被提交为:
Processing by DeploymentGroupController#show_workflow_list as HTML
Parameters: {"utf8"=>"Γ£ô", "folder_name"=>{"foldernames"=>"DETAIL_ADJUSTMENT"
当我添加提交按钮而不是:onchange=>
下面的按钮时:
<%= form_for :folder_name, :remote => true, :method => "get", :url => {:action => "show_workflow_list"} do |f| %>
<%= f.select :foldernames, options_for_select(@folders, @folders.first)%><br /><br />
<%= hidden_field_tag 'selected_domain', params[:domain_selected] %>
<pre><%= f.submit "Submit"%></pre>
请求是这样提交的:
Processing by DeploymentGroupController#show_workflow_list as JS
Parameters: {"utf8"=>"Γ£ô", "folder_name"=>{"foldernames"=>"DETAIL_ADJUSTMENT"
我的show_workflow_list
操作中有以下代码:
def show_workflow_list
//some code
respond_to do |format|
format.js
end
end
我有一个show_workflow_list.js.erb
包含以下内容的文件:
$('#workflow_selection').html("<%=j render "show_workflow_list" %>");
问题是当我将其更改为 时onchange=> submit
,它会将操作作为 HTML 处理:
Processing by DeploymentGroupController#show_workflow_list as HTML
而不是 JS 当有一个提交按钮时:
Processing by DeploymentGroupController#show_workflow_list as JS
所以我得到了一个 406 状态错误并且show_workflow_list
没有被渲染。
更新:
我明白为什么onchange=>
以 HTML 格式发送。原因是select的格式是“ select(object, method, choices, options = {}, html_options = {})
”。我提到的地方":onchange=>this.for.submit" is under html_options={}"
就是为什么它被提交为 HTML。我需要在同一页面上渲染 a_show_workflow_list.html.erb
之间的部分<div>
,所以我更改了控制器中的代码,如下所示:
def show_workflow_list
//code here
respond_to do |format|
format.html{?}
end
end
在上面的代码中,我需要在 中填写一些内容,{}
以便format.html
在我的._show_workflow_list
div
make_deployment_group.html.erb