Jquery 从控制器启动模式
我试图从我的控制器向用户显示一个模式窗口(使用jqueryui对话框) 例如:Jquery 从控制器启动模式,jquery,ruby-on-rails,ruby,jquery-ui,Jquery,Ruby On Rails,Ruby,Jquery Ui,我试图从我的控制器向用户显示一个模式窗口(使用jqueryui对话框) 例如: def create if params[:id] #do something else #show a modal window with a partial as content end Thx for your help=)这是一个修复程序,但可能对您有用 控制器 def create if params[:id] #true code else render
def create
if params[:id]
#do something
else
#show a modal window with a partial as content
end
Thx for your help=)这是一个修复程序,但可能对您有用 控制器
def create
if params[:id]
#true code
else
render :new
@dialog = true
end
end
关于你的new.html.erb
<% if @dialog %>
<%= #dialog code %>
<% else %>
<%= #normal code %>
<% end %>
您不能从控制器显示jQuery对话框,因为您不能在服务器端执行JavaScript。最接近于此的方法是发回一个JavaScript字符串,以便在客户端进行计算,但这是一种非常糟糕的做法。最好的办法是在服务器端键入一些内容,然后在客户端执行对话代码。如果您不想在erb模板中使用大量JavaScript,可以从那里调用函数,或者通过AJAX进行提交,让处理程序执行对话框或呈现一个既可以呈现部分内容又可以执行JavaScript的js.erb模板。如果您想要上述任何一个示例,请告诉我,我会看看是否可以提供一个。如何调用您的创建操作,通过提交还是通过Javascript方法?您想要这样的操作吗
如果@valid\u attributes,则保存并重定向else render new and show modal form
。我试图显示一个模式,如果用户提交了一个未知的东西,就创建一个新的东西。您好,谢谢您的回答。我已经想出了这个解决方案,但我想找到一个更优雅的方法。我很有兴趣看到最干净的方法,也是最干燥的方法:)thx的时间
<% form_for @product do |f| %>
<% if @product.errors %>
<%= #dialog code %>
<% end %>
<% end %>