从控制器启动模态

时间:2010-12-14 12:52:30

标签: jquery ruby-on-rails ruby jquery-ui

我正试图从我的控制器向用户显示一个模态窗口(使用jquery ui对话框)。

例如:

def create
  if params[:id]
    #do something
  else
    #show a modal window with a partial as content
end

感谢您的帮助=)

2 个答案:

答案 0 :(得分:1)

这是一个修复,但可能对您有用

控制器

def create
  if params[:id]
    #true code
  else
    render :new
    @dialog = true
  end    
end

on new.html.erb

<% if @dialog %>
  <%= #dialog code %>
<% else %>
  <%= #normal code %>
<% end %>

希望它有效。

<强>更新

如果我在评论中询问你的内容是否正确,那么你可以这样做

在您的new.html.erb中,您可以执行此操作

<% form_for @product do |f| %>
  <% if @product.errors %>
    <%= #dialog code %>
  <% end %>
<% end %>

答案 1 :(得分:0)

您无法从控制器显示jQuery对话框,因为您无法在服务器端执行JavaScript。你最接近的就是发回一个JavaScript字符串,以便在客户端进行评估,但这是非常糟糕的做法。最好的办法是在服务器端关闭一些东西并在客户端执行对话框代码。如果你不想在你的erb模板中使用一堆JavaScript,你可以从那里调用一个函数,或者你可以通过AJAX进行提交,让你的处理程序执行对话或渲染一个可以渲染的js.erb模板部分和做JavaScript。如果您想要上述任何一个示例,请告诉我,我会看看是否可以提供一个。