我需要在一个从Sinatra :: Base子类化的Ruby类中访问某些私有方法中的某些功能.
类定义的开头如下:
class Geminabox < Sinatra::Base
Run Code Online (Sandbox Code Playgroud)
它从一系列代码块开始,如下所示:
get '/' do
@gems = load_gems
@index_gems = index_gems(@gems)
erb :index
end
Run Code Online (Sandbox Code Playgroud)
其中'load_gems'和'index_gems'是稍后在同一个类中定义的私有方法.
但是,如果我将此类加载到irb控制台并创建如下的实例:
g=Geminabox.new
Run Code Online (Sandbox Code Playgroud)
然后尝试查看我得到的私有方法:
> 2.2.1 :005 > g.private_methods(false)
=> [:initialize]
> 2.2.1 :006 >
Run Code Online (Sandbox Code Playgroud)
没有'load_gems',没有'index_gems'等等,我不能使用'send'调用其中任何一个:
2.2.1 :007 > g.send(:load_gems)
NoMethodError: undefined method `load_gems' for #<Geminabox app_file="/apps/geminabox/lib/geminabox.rb">
from (irb):7
from /usr/local/rvm/rubies/ruby-2.2.1/bin/irb:11:in `<main>'
2.2.1 :008 >
Run Code Online (Sandbox Code Playgroud)
我不明白为什么,我希望有人可以启发我.
下面的代码创建一个搜索字段,然后将焦点事件附加到它,以便当用户在输入字段中单击时预设值消失..focus行在控制台中工作,但不在代码中工作.如何让它在代码中工作?
<script type='text/javascript'>
jQuery( document ).ready(function( $ ) {
jQuery('#site-nav').append("<div class='nav' style='width: 130px; margin-top: 15px;'><form id='site-search' method='get' action='/search'><input id='search' name='search' class='textfield' tabindex='1' type='text' style='border-radius: 10px; height: 30px;' value='SEARCH'></form></div>")
});
jQuery("#search").focus(function(){$(this).val("");});
</script>
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我必须拼出"jQuery",因为我们的应用程序配置为避免冲突的方式谢谢.祝福
我有填充问题.我在'widgetdiv4'元素中添加了"padding:30px",它看起来像我希望的顶部和左边但是由于某种原因底部填充几乎是两倍,我不知道为什么.这是代码:
<div class="large-4 columns" id="default_right">
<div id="rightsidebar" class="WidgetContainer">
<div id="widget_16038" class="widget-menu-widget namenus-projects">
<div class="widget basic widgetdiv1">
<div class="widget basic widgetdiv2">
<div class="widget basic widgetdiv3">
<div class="widget basic widgetdiv4">
<h3 class="widgettitle">Projects</h3>
<div class="menu_primary">
<ul>
<li class=" nested-menu-item"><a href="/"><span class="not-tc">Project 1</span></a></li>
<li class=" nested-menu-item"><a href="/"><span class="not-tc">Project 2</span></a></li>
<li class=" nested-menu-item"><a href="/"><span class="not-tc">Project 3</span></a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="widget_16039" class="widget-menu-widget namenus-menu-widget">
<div class="widget basic widgetdiv1">
<div class="widget basic widgetdiv2">
<div class="widget basic widgetdiv3">
<div class="widget basic widgetdiv4">
<h3 class="widgettitle">Menu</h3> …Run Code Online (Sandbox Code Playgroud)