Rails Rspec 重定向错误
Rails Rspec redirection error
在 currency
显示视图中,我有一个表单可以提交应该由 currency
控制器发送到 prediction
控制器的数据。但是,在我到达 prediction
控制器之前出现错误。
表格定义为:
<%=form_for @currency do |f| %>
<%= f.label "Days" %>
<div id="select_days" >
<%= f.select(:prediction_days, options_for_select(1..30)) %>
</div>
<%= f.submit "Predict", class: "btn btn-primary" %>
<% end %>
controller有如下代码(执行打印,然后报错)
def update
respond_to do |format|
if @currency.update(currency_params)
prediction = @currency.neural_network.predict
p "getting prediction"
redirect_to prediction
错误是:
Failure/Error: click_button 'Predict'
ActionController::UnknownFormat:
ActionController::UnknownFormat
当我以这种方式使用 RSpec 和 Capybara 进行测试时出现故障:
click_button 'Predict'
我不太确定为什么在 respond_to
块中没有定义格式时却有所有代码。该错误似乎解决了这个问题:ActionController::UnknownFormat
,因为您没有定义格式(据我所知,因为您的 update
方法不完整)。
你真的需要respond_to
吗?如果没有,试试这个:
def update
if @currency.update(currency_params)
prediction = @currency.neural_network.predict
redirect_to prediction
end
end
如果您确实需要它,我建议您设置一种格式(我猜您在需要时有更多格式):
def update
respond_to do |format|
format.html do
if @currency.update(currency_params)
prediction = @currency.neural_network.predict
redirect_to prediction
end
end
format.json { ... } # or whatever format you want to define.
end
end
在 currency
显示视图中,我有一个表单可以提交应该由 currency
控制器发送到 prediction
控制器的数据。但是,在我到达 prediction
控制器之前出现错误。
表格定义为:
<%=form_for @currency do |f| %>
<%= f.label "Days" %>
<div id="select_days" >
<%= f.select(:prediction_days, options_for_select(1..30)) %>
</div>
<%= f.submit "Predict", class: "btn btn-primary" %>
<% end %>
controller有如下代码(执行打印,然后报错)
def update
respond_to do |format|
if @currency.update(currency_params)
prediction = @currency.neural_network.predict
p "getting prediction"
redirect_to prediction
错误是:
Failure/Error: click_button 'Predict'
ActionController::UnknownFormat:
ActionController::UnknownFormat
当我以这种方式使用 RSpec 和 Capybara 进行测试时出现故障:
click_button 'Predict'
我不太确定为什么在 respond_to
块中没有定义格式时却有所有代码。该错误似乎解决了这个问题:ActionController::UnknownFormat
,因为您没有定义格式(据我所知,因为您的 update
方法不完整)。
你真的需要respond_to
吗?如果没有,试试这个:
def update
if @currency.update(currency_params)
prediction = @currency.neural_network.predict
redirect_to prediction
end
end
如果您确实需要它,我建议您设置一种格式(我猜您在需要时有更多格式):
def update
respond_to do |format|
format.html do
if @currency.update(currency_params)
prediction = @currency.neural_network.predict
redirect_to prediction
end
end
format.json { ... } # or whatever format you want to define.
end
end