Rails表单未呈现json响应



我对rails还很陌生,所以请耐心等待。我有一个非常简单的表单,它接受几个值并将其发送到我的EmailController。我在上面运行了非常基本的逻辑,只想将JSON返回到视图中。看起来控制器操作正确地呈现了数据(我可以在服务器输出中看到(,但视图根本没有改变。

这是我的home.html.erb

<%= form_with(url: '/api/v1/emails', method: 'post') do |f| %>
<%= f.fields_for :email do |ev| %>
<%= ev.label :address %>
<%= ev.text_field :address %>
<% end %>
<%= f.submit 'Verify' %>
<% end %>

emails_controller.rb(简化(

class Api::V1::EmailController < Api::V1::BaseController
def create
@email = Email.new(email_params)
if @email.save
redirect_to api_v1_email_path(@email.id)
else
render json: @email.errors, status: :unprocessable_entity
end
end
def show
if @email
render 'show'
else
render json: @email, status: :not_found
end
end
def email_params
params.require(:email).permit(:address, :id)
end

它说它渲染了模板,但视图没有改变:

Rendering api/v1/email/show.html.erb within layouts/application
Rendered api/v1/email/show.html.erb within layouts/application (0.9ms)
Completed 200 OK in 611ms (Views: 593.6ms | ActiveRecord: 1.3ms)

模板只是简单的";你好世界";纯文本

提前感谢您的帮助!

我最终不得不用local: true创建表单,它解决了问题。

<%= form_with(url: '/api/v1/emails', method: 'post', local: true) do |f| %>

最新更新