我正试图从我的控制器向用户显示一个模态窗口(使用jquery ui对话框)。
例如:
def create
if params[:id]
#do something
else
#show a modal window with a partial as content
end
感谢您的帮助=)
答案 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。如果您想要上述任何一个示例,请告诉我,我会看看是否可以提供一个。