首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Rails:您可以在控制器中呈现html:在当前视图中填充div吗?

Rails:您可以在控制器中呈现html:在当前视图中填充div吗?
EN

Stack Overflow用户
提问于 2014-07-30 10:58:36
回答 1查看 184关注 0票数 0

我正在为一个名为SchoolApplication的模型构建一个表单。如果有人没有成功地填写表单,我想在表单上面呈现一点<strong> you messed up</strong>。目前,我在控制器中有一些与我的表单相对应的逻辑,即:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if @school_application.save
  redirect_to relevant_path
else
  render html: '<strong>you messed up </strong>'
end

但是,它不是在新页面中呈现这个内容,而是只显示文本(包括HTML标记),而不是将搞乱。

有什么方法可以在呈现之前在页面上显示此消息吗?特别是在为此目的而创建的<div>中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-30 11:03:23

您可以使用rails flash变量来完成这个任务,从文档中可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class ClientsController < ApplicationController
  def create
    @client = Client.new(params[:client])
    if @client.save
      # ...
    else
      flash.now[:error] = "Could not save client"
      render action: "new"
    end
  end
end

有关更多详细信息,请参阅overview.html#the-flash

还有一个常见的“抓到”,别忘了在你的application.html.erb里放一个变体

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html>
  <!-- <head/> -->
  <body>
    <% flash.each do |name, msg| -%>
      <%= content_tag :div, msg, class: name %>
    <% end -%>

    <!-- more content -->
  </body>
</html>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25044801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文