如何在rails控制器中为create方法呈现javavscript文件
How to render a javavscript file in rails controller for create method
当用户没有填写表单的任何部分时,我需要呈现一个javascript文件来显示一个警告框。在填写完所有输入之前,表单不会保存。我尝试了很多不同的组合,我觉得我离解决方案更远了。
def create
@question = Question.new(question_params)
if @question.save
redirect_to new_question_share_quiz_path(@question)
else
respond_to do |format|
format.js { render :action => "try" }
end
end
结束
try.js文件在views文件夹中。
try.js文件只有一行代码
alert("You need to fill out the whole form");
如果你绝对必须用alert
来做,这是一个解决方案:
如果表单有效,请创建一条快闪消息。
def create
@question = Question.new(question_params)
if @question.save
redirect_to new_question_share_quiz_path(@question)
else
respond_to do |format|
render :new, alert: 'The form is not valid'
end
end
end
为/views/layouts/application.html.erb
添加闪光灯。
<% if flash.any? %>
<ul id="flash">
<% flash.each do |key,message| %>
<li class="flash flash-<% key %>">message</li>
<% end %>
</ul>
<% end %>
然后添加使用javascript创建警报,如果有"警报"级别的闪光。
$('.flash-alert', $('#flash')).each(function(){
alert($(this).text());
});
<!-- THIS IS JUST SO THAT YOU CAN RUN THE SNIPPET!! -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="flash">
<li class="flash flash-notice">Should trigger an alert</li>
<li class="flash flash-alert">Should trigger a alert</li>
</ul>
这里的优点是,这是在rails中处理表单反馈的传统方式,当你的设计师意识到在纠正表单之前必须关闭对话框很烦人时,你可以关闭javascript
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- toLocaleDateString和toLocaleString方法不尊重机器时区
- 有条件更新d3.js力图中节点的最佳方法
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- 如何在rails控制器中为create方法呈现javavscript文件