我正在努力解决我认为是一个非常简单的错误,但是我没有Rails的复杂性来检测该错误在哪里。
我的格式如下:
Get-Help Set-ItemProperty -Full
在我的config / routes.rb文件中,有以下一行:
<%= form_with(url: '/bills/viewer', method: :get) do |f| %>
<%= f.label :congress, 'Congress (i.e. 112)' %>
<%= f.number_field :congress, class: 'form-control' %>
<%= f.label :bill_type, 'Bill type' %>
<%= f.radio_button :bill_type, 'hr' %><%= ' House of Representatives' %>
<%= f.radio_button :bill_type, 's' %><%= ' Senate' %>
<%= f.radio_button :bill_type, 'hjres' %> <%= 'House Joint Resolution' %>
<%= f.radio_button :bill_type, 'sjres' %><%= ' Senate Joint Resolution' %>
<%= f.radio_button :bill_type, 'hconres' %><%= ' House Concurrent Resolution' %>
<%= f.radio_button :bill_type, 'sconres' %><%= ' Senate Concurrent Resolution' %>
<%= f.radio_button :bill_type, 'hres' %><%= ' House Resolution' %>
<%= f.radio_button :bill_type, 'sres' %><%= ' Senate Resolution' %>
<%= f.label :bill_number, 'Bill number' %>
<%= f.number_field :bill_number, class: 'form-control' %>
<%= f.submit "Submit", class: 'form-control' %>
<% end %>
我的想法是我希望表单将提交的信息转移到我的bills_controller.rb文件中的“ show”操作中,该文件在下面给出...
get '/bills/viewer', to: 'bills#show'
...然后将用户重定向到相应的show.html.erb文件,该文件在下面提供...
def show
@bill = Bill.where("congress = ? AND bill_type = ? AND bill_number = ?", bill_params[:congress], bill_params[:bill_type], bill_params[:bill_number]).take
if @bill.nil?
create
end
@bill_xml = RestClient.get(bill_params[:bill_link])
render :xml => @bill_xml
puts "Called to show!"
其中两个“ puts”行用于我自己的调试目的。 show方法中的一个行为正常,并且我的控制台显示“ Called to show!”。另一个放置线“ RENDERED ...”不显示。此外,该过程完成到200 OK。
点击下面的“提交”,我将控制台的输出包括在内...
<% provide(:title, "#{ @bill[:congress] } #{ @bill[:bill_type].upcase } #{ @bill[:bill_number] } | ") %>
<h1><%= "#{ @bill[:congress] } #{ @bill[:bill_type].upcase } #{ @bill[:bill_number] }" %></h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= puts @bill_xml %>
<%= render @bill_xml %>
</div>
</div>
<% puts "RENDERED..." %>
但是,如果要将表单重定向到show.html.erb,则控制台输出应返回3XX,不是吗?
我的理解(显然是错误的)是,当我在bills_controller中调用show操作时,网站应该自动重定向到views / bills / show.html.erb页面。为什么不是这种情况,如何习惯地正确编辑我的代码,以便进行所需的重定向?
非常感谢您的帮助。
答案 0 :(得分:0)
通过在form_with标记中设置local:true解决了该错误。但是,我不清楚为什么
答案 1 :(得分:0)
这来自Rails指南:
“默认情况下,form_with使用Ajax提交表单,从而跳过整个页面的重定向。为了使本指南更易于理解,我们暂时使用local:true禁用它。”