簡體   English   中英

Ruby on Rails表單錯誤未顯示

[英]Ruby on rails form errors not displayed

我正在嘗試在表單中顯示錯誤,但沒有出現,有人可以幫我嗎?

這是我的控制器:

def create
 @bug = Bug.create(bug_params)

 redirect_to bugs_path
end

private

  def bug_params
    params.require(:bug).permit(:owner, :title, :description)
  end

我的模特:

class Bug < ApplicationRecord

    validates_presence_of :title
end

而我的表格:

<%= form_with model: @bug do |form| %>
    <% if @bug.errors.any? %>
        <h2>Errors : </h2>
        <ul>
            <% @bug.errors.full_messages.each do |message| %>
                <li><<%= message %>/li>
            <% end %>
        </ul>

    <% end %>

    <%= form.select :owner, @users.collect {|u| [ u.username, u.id ] } %>
    <%= form.text_field :title, placeholder: "title" %>
    <%= form.text_area :description, placeholder: "description" %>

    <%= form.submit %>
<% end %>

這里發生的事情是,無論是否創建Bug,您都將重定向到bugs_path 相反,您應該這樣做

@bug = Bug.new(bug_params)

if @bug.save
  redirect_to bugs_path, notice: 'Bug was successfully created.'
else
  render :new
end

您的標記有問題,請更改此設置

<li><<%= message %>/li>

對於

<li><%= message %></li>

您的控制器創建方法需要修改以顯示錯誤消息。 目前,您正在嘗試創建Bug。 如果已創建錯誤或未創建錯誤,那么您將重定向到錯誤對象正在重置的錯誤索引頁面。

這是修改后的創建方法代碼-

def create
 @bug = Bug.create(bug_params)

 respond_to do |format|
   if @bug.persisted?
     format.html { redirect_to bugs_path, notice: 'Bug was successfully created.' }
   else
     format.html { render :new }
   end
 end
end

希望它能工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM