Ruby case语句没有按预期执行(Ruby case statement does not perform as expected)
Fyi,使用Rails。
给定
user = User.find(1)
这个case语句返回
nil
当它返回self.do_something_with_user
的结果时。def case_method case self.class when User self.do_something_with_user # assume does not return nil when SomeOtherClass self.do_something_else else nil end end user.case_method # => nil
我错过了什么? 使用pry,
self.class == User
返回true。Fyi, using Rails.
Given
user = User.find(1)
This case statement returns
nil
when it should return the result ofself.do_something_with_user
.def case_method case self.class when User self.do_something_with_user # assume does not return nil when SomeOtherClass self.do_something_else else nil end end user.case_method # => nil
What am I missing? Using pry,
self.class == User
returns true.
原文:https://stackoverflow.com/questions/14452271
最满意答案
试试这段代码。 它是未经测试的,因为我没有你的api url。
我从ul中删除了类标签 (同名的id和id是坏样式,你不需要它)
对于JQUERY UI TABS,您需要在ul中为选项卡本身插入一个插入,并在ul之后使用另一个插入选项卡的内容。
<li><a href="#tabs-1">tabname</a><li> <div id="tabs-1">content</div>
您的content_dat [0]不需要,因为索引已经存在
<script> var jsonURL = "http://www.myurl.com/api.php/content_data?columns=id_cr,title,teaser&order=title&page=1"; jQuery(document).ready(function() { jQuery.ajax({ url: jsonURL, success: searchCallback }); }); function searchCallback(data) { var content_data = data.content_data.records; jQuery.each(content_data, function(index, content_dat) { jQuery("#tabs ul").append('<li><a href="#tabs-'+index+'">' + content_dat[2] + '</a></li>'); jQuery("#tabs ul").after("<div id='tabs-"+index+"'>"+content_dat[1]+"</div>"); }); }; </script> <div id="tabs"> <ul> </ul> </div>
try this code. it is untested as i do not have your api url.
i removed the class tabs from the ul (class and id with same name is bad style and you do not need it)
for JQUERY UI TABS you need one insert in the ul for the tab itself, and another for the tab's content after the ul.
<li><a href="#tabs-1">tabname</a><li> <div id="tabs-1">content</div>
your content_dat[0] is not needed, as the index is already there
<script> var jsonURL = "http://www.myurl.com/api.php/content_data?columns=id_cr,title,teaser&order=title&page=1"; jQuery(document).ready(function() { jQuery.ajax({ url: jsonURL, success: searchCallback }); }); function searchCallback(data) { var content_data = data.content_data.records; jQuery.each(content_data, function(index, content_dat) { jQuery("#tabs ul").append('<li><a href="#tabs-'+index+'">' + content_dat[2] + '</a></li>'); jQuery("#tabs ul").after("<div id='tabs-"+index+"'>"+content_dat[1]+"</div>"); }); }; </script> <div id="tabs"> <ul> </ul> </div>
相关问答
更多-
我认为你不应该调用$.parseJSON(result); 因为你指定了dataType : 'json' (看看我对这个问题的回答为什么'jQuery.parseJSON'没有必要? )所以jQuery会为你解析响应。 看看另一个例子,你也应该回来 dataFilter : function(result) { var data = $.parseJSON(result); return data.content; }, 编辑 ...
-
JQuery和JSON(JQuery and JSON)[2023-11-16]
由于Javascript是客户端,您将无法使用Javascript写入服务器上的JSON文件。 你需要一些服务器端代码才能做到这一点。 然而,阅读和解析JSON文件并不是问题。 你会使用jQuery.getJSON函数。 您可以提供url和回调参数(不需要数据,因为您正在读取文件,因此不需要发送数据)。 该url将是您的JSON文件的路径,并且回调将是一个使用数据的函数。 以下是您的代码可能的外观示例。 我不确切知道你的JSON是什么,但是如果你有一个名为“products”的集合,其中包含一系列具有“na ... -
您可以使用$.parseJSON将您的文本解析为JSON对象。 然后使用jQuery创建你想要的任何元素,并将其追加到你想要的地方。 (这里是一个JSFiddle ) var myJSON = '{ "employee": { "display_name":"EMPLOYEE NAME:", "format":"string", "type":"textbox", "dflt":"null", "isMandatory":"true" } }'; var employee = $.parseJSON( ...
-
如何仅查看渲染的显示? 为什么我也看到/ api / products的原始json返回? 这是ajax初始化选项卡背后的想法,小部件将只显示ajax调用返回的内容。 您可以让服务器呈现实际的HTML片段,或让renderList返回其结果而不是与DOM本身交互,这将使您有机会: load: function (event, ui ) { var $panel = $(ui.panel) var myHtml = renderList(JSON.parse($panel.text())); ...
-
Jquery JSON和标签(Jquery JSON and tabs)[2024-02-16]
试试这段代码。 它是未经测试的,因为我没有你的api url。 我从ul中删除了类标签 (同名的id和id是坏样式,你不需要它) 对于JQUERY UI TABS,您需要在ul中为选项卡本身插入一个插入,并在ul之后使用另一个插入选项卡的内容。- tabname
content您的content_dat [0]不需要,因为索引已经存在