如何检查 Rails rich_text_field(操作文本)是否为空白?
How can you check if a Rails rich_text_field (Action Text) is blank?
我似乎无法在任何地方找到它 - 控制台显示该字段为 nil
但实际上操作文本存储的内容可能是 'blank'.
MyModel.rich_text_field.nil? returns false 无论实际内容是否为空。
您可以检查您的模型字段是否为空:
MyModel.rich_text_field.blank?
这就是我最终处理 Action Text 字段验证以确定它们是否为空的方式。
在我的 posts_controller 中,我确保 if @post.save
在 respond_to 块中。
# POST /posts or /posts.json
def create
@post = current_user.posts.new(post_params)
respond_to do |format|
if @post.save
flash[:success] = "Post was successfully created."
format.html { redirect_to @post }
format.json { render :show, status: :created, location: @post }
else
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
在我的 Post 模型中,我添加了一个带有自定义验证的属性访问器。
class Post < ApplicationRecord
attr_accessor :body
# Action Text, this attribute doesn't actually exist in the Post model
# it exists in the action_text_rich_texts table
has_rich_text :body
# custom validation (Note the singular validate, not the pluralized validations)
validate :post_body_cant_be_empty
# custom model validation to ensure the post body that Action Text uses is not empty
def post_body_cant_be_empty
if self.body.blank?
self.errors.add(:body, "can't be empty")
end
end
end
现在自定义验证将是 运行 检查操作文本 post 正文是否为空,如果是则在提交表单时向用户显示错误。
我似乎无法在任何地方找到它 - 控制台显示该字段为 nil
但实际上操作文本存储的内容可能是 'blank'.
MyModel.rich_text_field.nil? returns false 无论实际内容是否为空。
您可以检查您的模型字段是否为空:
MyModel.rich_text_field.blank?
这就是我最终处理 Action Text 字段验证以确定它们是否为空的方式。
在我的 posts_controller 中,我确保 if @post.save
在 respond_to 块中。
# POST /posts or /posts.json
def create
@post = current_user.posts.new(post_params)
respond_to do |format|
if @post.save
flash[:success] = "Post was successfully created."
format.html { redirect_to @post }
format.json { render :show, status: :created, location: @post }
else
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
在我的 Post 模型中,我添加了一个带有自定义验证的属性访问器。
class Post < ApplicationRecord
attr_accessor :body
# Action Text, this attribute doesn't actually exist in the Post model
# it exists in the action_text_rich_texts table
has_rich_text :body
# custom validation (Note the singular validate, not the pluralized validations)
validate :post_body_cant_be_empty
# custom model validation to ensure the post body that Action Text uses is not empty
def post_body_cant_be_empty
if self.body.blank?
self.errors.add(:body, "can't be empty")
end
end
end
现在自定义验证将是 运行 检查操作文本 post 正文是否为空,如果是则在提交表单时向用户显示错误。