我想插入一个订阅者表单,以将新订阅者添加到属于不同控制器 l1(着陆页 1)的视图中。
subscribers_controller.rb:
class SubscribersController < ApplicationController
def new
@subscriber = Subscriber.new
end
def create
@subscriber = Subscriber.new(subscriber_params)
if @subscriber.save
redirect_to root_path
else
render :new
end
end
l1_controller.rb:
class L1Controller < ApplicationController
def demo
@subscriber = Subscriber.new
end
routes.rb:
resources :subscribers,only: [:create]
get '/demo/',to: 'l1#demo'
l1/demo.html.erb:
<%= form_for @subscriber,:url => { :controller => "subscribers",:action => "create" },:html => {:method => :post},multipart: true do |f| %>
<%= f.label :email %>
<%= f.email_field :email %>
<%= f.submit "Submit" %>
<% end %>
模型/订阅者.rb
class Subscriber < ApplicationRecord
validates :email,presence: true
end
该解决方案有效,我可以从 l1 演示视图添加新订阅者,但验证错误无法正常工作。当我不填写电子邮件字段并按提交时,它呈现的不是 l1 演示视图,而是订阅者的“新”视图。你知道如何解决吗?换句话说,如何在同一个 l1 演示视图中显示验证错误?谢谢!