在另一个控制器内创建对象时,验证错误不起作用

我想插入一个订阅者表单,以将新订阅者添加到属于不同控制器 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 演示视图中显示验证错误?谢谢!

wangjihong0407 回答:在另一个控制器内创建对象时,验证错误不起作用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3014.html

大家都在问