Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 在特定于输入类型的视图中呈现验证错误时遇到问题_Validation_Ruby On Rails 4_Partials - Fatal编程技术网

Validation 在特定于输入类型的视图中呈现验证错误时遇到问题

Validation 在特定于输入类型的视图中呈现验证错误时遇到问题,validation,ruby-on-rails-4,partials,Validation,Ruby On Rails 4,Partials,我试图让我的验证错误只显示与该类型相关的消息。有三种类型的消息,我使用javascript显示或隐藏正确的类型。我曾尝试使用特定于类型的实例变量,但当验证失败时,它将无法正确读取我的实例变量 我的控制器当前的功能: def create @user = current_user @errors = "errors" @sassy = SassyWish.new @nice = NiceWish.new @blank = BlankWish.new

我试图让我的验证错误只显示与该类型相关的消息。有三种类型的消息,我使用javascript显示或隐藏正确的类型。我曾尝试使用特定于类型的实例变量,但当验证失败时,它将无法正确读取我的实例变量

我的控制器当前的功能:

def create
    @user = current_user
    @errors = "errors"

    @sassy  = SassyWish.new
    @nice   = NiceWish.new
    @blank  = BlankWish.new

    if params[:sassy_wish]
        @wish = SassyWish.new sassy_params
    elsif params[:nice_wish]
        @wish = NiceWish.new nice_params
    elsif params[:blank_wish]
        @wish = BlankWish.new blank_params
    else
        render :new
    end

    @wish.save
    if @wish.errors.any?
        render :new
        @user = current_user
        if @wish._type = "SassyWish"
            @sassyErrors = @errors
        elsif @wish._type = "NiceWish"
            @niceErrors = "errors"
        elsif @wish._type = "BlankWish"
            @blankErrors = "errors"
        else
            @errors
        end
    else
        redirect_to wishes_url
    end
end
我的看法

<div class="gw_wish">
  <div class="gw_newWish">
    <div class="gw_start gw_new"></div>
    <div class="gw_newSassy gw_new">
      <%= render partial: @sassyErrors %>
         <%= render partial: "sassyWish" %>
    </div>
    <div class="gw_newNice gw_new">
        <%= render partial: "niceWish" %>
    </div>
    <div class="gw_newBlank gw_new">
        <%= render partial: "blankWish" %>
    </div>
  </div>
</div>

我想在每个愿望类型中显示错误,这样当您从一个愿望类型单击到另一个愿望类型时,它不会显示愿望类型是否与提交的愿望类型不匹配

当前,我在读取时遇到一个错误:“nil”不是与ActiveModel兼容的对象。它必须实现:to_partial_path


谢谢

使用
=
而不是
=
。由于
@sassyErrors
被设置为nil,因此出现错误。由于条件不正确,无法设置。与
@nicererrors
@blankErrors
相同

if @wish.save   ## Check if record was saved successfully or not
    redirect_to wishes_url
else    
    @user = current_user
    if @wish._type == "SassyWish"
        @sassyErrors = @errors
    elsif @wish._type == "NiceWish"
        @niceErrors = "errors"
    elsif @wish._type == "BlankWish"
        @blankErrors = "errors"
    else
        @errors
    end
    render :new
end