【问题标题】:Display bootstrap modal after successful create action成功创建操作后显示引导模式
【发布时间】:2023-03-14 03:45:02
【问题描述】:

我的主页上有一个基本的电子邮件输入表单,如果保存了订阅者的电子邮件,我想将它们重定向回来并显示带有一些信息的引导模式。我曾考虑向视图发送flash[:success],然后说“如果flash[:success],则显示模态”,但我不确定实际触发模态的正确方法是什么。

/controllers/subscribers_controller.rb:

def create
  @subscriber = Subscriber.new(subscriber_params)
  if @subscriber.save
    # Send info to view (a flash?) saying to show modal
    redirect_to root_path
...

如果重要的话:

  • 视图是/views/pages/home.html.erb
  • 我们可以使用subscriber-success-modal(或任何最简单的方式)作为模态ID。
  • 我们可以将subscriber_success_modal.html.erb 用于模态的局部视图。

【问题讨论】:

  • 这可能不是一个理想的解决方案,但 .您可以发送带有root_url 的查询字符串,例如?modal=true,然后在主页中,使用JS 检查查询字符串是否存在modal=true,然后您可以使用所需的代码modal.show() 显示模态。

标签: jquery ruby-on-rails twitter-bootstrap


【解决方案1】:

当您重定向用户时,您不能使用实例变量在请求之间共享数据,为此您必须使用 session 来存储显示模式键的值,例如:

session[:show_modal] = true

在 html 文件“/views/pages/home.html.erb”中,您可以获得会话变量 show_modal 并可以相应地显示模态。

【讨论】:

  • 谢谢。实际显示/触发模式的最简单方法是什么?像下面这样的东西似乎不起作用。 <% if session[:show_modal] == true %> <%= render "layouts/success_modal" %> <% end %>我猜是涉及到一些 JS?
  • 请见上文。
猜你喜欢
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多