在rails中,我可以通过controller_name获取当前控制器的名称,并通过调用action_name获取当前操作.我正在寻找类似的运行时反射来获取以下内容:
例如,我是一个具有"添加"和"编辑"操作的产品控制器.我是否可以通过编程方式提取这些操作的名称以向用户显示支持哪些操作?
我已经看过一个需要使用的方法,ActionController::Routing::Routes.named_routes.routes.each
但我无法让它工作.ActionDispatch::Routing::Routes当我使用它时,我得到了未初始化的常量错误.
如果有任何好的教程或文档可以帮助我理解rails反射功能.我搜索了它,但我主要是积极的记录反射相关的博客.我正在寻找能让我在运行时获取有关控制器和操作/方法的信息的东西.
谢谢,
Tabrez
这可能是所有新用户迟早会发现有关Rails的事情之一.我刚刚意识到rails正在使用serialize关键字更新所有字段,而不检查内部是否真的发生了任何变化.在某种程度上,这是通用框架的明智之举.
但有没有办法覆盖这种行为?如果我可以跟踪序列化字段中的值是否已更改,是否有办法阻止它在更新语句中被推送?我尝试使用"update_attributes"并将哈希值限制在感兴趣的字段中,但rails仍然更新所有序列化字段.
建议?
serialization ruby-on-rails update-attributes ruby-on-rails-3
我希望foreman gem使用我的开发环境文件中提供的PORT值,而不是使用自己的值.我的文件设置如下所示:
启动工头的bash脚本:
工头开始-e development.env
development.env文件内容:
PORT = 3000
Procfile内容
web:bundle exec rails server thin -p $ PORT -e $ RAILS_ENV $ 1
开发服务器最终从端口5000开始.我知道我可以使用--p 3000启动工头强制它使用该端口.但这违背了env文件的目的.
有什么建议?
我有一个由CDN提供商托管的安全证书.该网站是https:www.connect4fitness.com
在IE中导航到该站点会出现以下错误:
"Internet Explorer blocked this website from displaying content with security certificate errors."
Run Code Online (Sandbox Code Playgroud)
当我在firefox或chrome中提取网站时,一切正常.但是当我探测证书详细信息时,我确实看到有关"混合内容"和"部分加密内容"的警告.
该站点上的所有出站链接均为https.可能是CDN注入的一些内容正在触发消息.但是,如何确定未加密的网页的确切部分?我需要这些信息与CDN公司的技术支持部门合作,因为他们声称一切都很好.
是否有任何工具或技术可用于查找浏览器收到的呈现页面的哪些部分未加密?
附加信息:
清除CDN缓存解决了Firefox和Chrome的错误消息.虽然我没有在网络选项卡上看到任何"http"请求,但IE仍抱怨混合内容.有任何想法吗?
我正在寻找新项目的各种Web框架(社交网络+连接用户之间的交易).我对Play(使用scala)很感兴趣,但在理解问题时需要一些帮助.
在Play中,核心不支持CDN +缩小,但是通过单独的模块greenscript.但是使用此模块需要使用基于绿色标记的新标记替换布局中的系统标记.这与Rails不同,在Rails中,您不必向布局添加任何内容,也可以通过附加act_as_*标记来使用新插件来逃避.有关长期Play方法是否让插件接管覆盖标记的任何想法?在这种情况下,如果你想在同一个对象上运行几个模块,比如一个url,那么它可以在Play中运行吗?
关于在Play中实现此目的的替代方法的任何指导也会有所帮助.
我在document.ready函数中有以下语句:
if($("sidebar ").html().trim().length == 0)
{
$("sidebar").append("<p> The sides..</p>");
};
Run Code Online (Sandbox Code Playgroud)
它在IE 9中工作正常,但只要我选择IE 8(浏览器和文档标准),脚本就会停止工作并发出以下错误:
SCRIPT5007: Unable to get value of the property 'trim': object is null or undefined
application-e51c9eee7d22e9644481115dc1fedd5f.js, line 7 character 17578
Run Code Online (Sandbox Code Playgroud)
我在调试模式下查看了.js,看到上面的语句转换为:
$("sidebar ").html().trim().length==0&&$("sidebar").append("<p> The sides..</p>")
Run Code Online (Sandbox Code Playgroud)
如何防止此错误?请注意,我确实看到该节点存在于呈现的页面中.
我认为可能只是提到shiv5.html可能不足以照顾IE的特性.所以,我通过sprockets添加了modernizr.js,并在我的布局中添加了class ="no-js".在IE <9中仍然没有运气.
我错过了什么?我还能做些什么来获得微软霸主的青睐?
javascript jquery internet-explorer ruby-on-rails cross-browser
如何在javascript for rails中嵌入ruby代码?我知道你可以在javascript响应器中轻松地执行此操作方法(例如在create.erb.js中).但有没有办法使用javascript_include_tag为应用程序中包含的其他自定义JavaScript文件执行此操作?
例如,在create.erb.js中,我可以编写代码,例如<%= if current_user_name ="xyz"%>
有没有办法在自定义的js文件中使用这种类型的嵌入,例如在整个应用程序中使用的custom.js,而不仅仅是为format.js生成响应.
谢谢,
Tabrez
jquery ruby-on-rails erb unobtrusive-javascript ruby-on-rails-3
jquery ×2
cdn ×1
controller ×1
erb ×1
foreman ×1
gem ×1
heroku ×1
javascript ×1
methods ×1
module ×1
reflection ×1
ruby ×1
scala ×1
security ×1
ssl ×1