我理解这个概念,some_instance.send
但我想弄清楚为什么你可以这两种方式调用它.Ruby Koans暗示除了提供许多不同的方法来做同样的事情之外还有一些原因.以下是两个用法示例:
class Foo
def bar?
true
end
end
foo = Foo.new
foo.send(:bar?)
foo.__send__(:bar?)
Run Code Online (Sandbox Code Playgroud)
有人对此有任何想法吗?
我一直在这里阅读respond_with
Rails 3中的方法有多酷.但我甚至无法在Rails API或搜索源中找到它的引用.任何人都可以向我解释它是如何工作的(你可以使用哪些选项等)或指向我实际实现的地方所以我可以自己仔细阅读代码?
问题:简而言之,当我尝试向我的应用程序安装注销链接时,它无法正常工作.这里有我认为放在这里的背景(如果你想要别的什么,请戳我)......
我在haml视图中得到了这个:
= link_to("Logout", destroy_user_session_path, :method => :delete)
Run Code Online (Sandbox Code Playgroud)
它在视图中生成:
<a href="/users/sign_out" data-method="delete" rel="nofollow">Logout</a>
Run Code Online (Sandbox Code Playgroud)
我在我的config/initializers/devise.rb中验证了我的设置没有注释并且正确:
config.sign_out_via = :delete
Run Code Online (Sandbox Code Playgroud)
我验证了以下路线:
destroy_user_session DELETE /users/sign_out(.:format) {:action=>"destroy", :controller=>"devise/sessions"}
Run Code Online (Sandbox Code Playgroud)
我的routes.rb中也有这点诡计,我怀疑这与我的问题有关:
devise_for :users, :controllers => {:sessions => "devise/sessions", :registrations => "users"}
resources :users
Run Code Online (Sandbox Code Playgroud)
最后一点是因为我想在自己的控制器中管理(编辑,创建和删除)用户.
我得到的错误信息如下:
ActiveRecord::RecordNotFound in UsersController#show
Couldn't find User with ID=sign_out
Rails.root: /home/jaydel/projects/mbsquared-projects/Wilson-Goldrick
app/controllers/users_controller.rb:16:in `show'
Run Code Online (Sandbox Code Playgroud)
在我的服务器日志中,我看到了这个请求:
Started GET "/users/sign_out" for 127.0.0.1 at 2011-08-04 13:08:51 -0500
Processing by UsersController#show as HTML
Parameters: {"id"=>"sign_out"}
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?
我最近买了一台新的 macbook pro 用于工作,我正在从旧机器迁移很多设置。我希望有一种方法可以从我的旧机器中导出连接配置/属性,而不必经历重新创建每个的过程。
有谁知道如何做到这一点?我老机器上的dbeaver版本是6.0.3,我新机器上的版本是6.1.x
谢谢!
我现在正在(快速)使用EJB,当我离开时它发生了巨大的变化(到目前为止更好).然而,我遇到了一个我正在努力的概念,并希望更好地理解,因为它似乎在我们(我工作的地方,而不是我和我头脑中的所有声音)代码中使用了相当多的代码.
这是我在一本书中找到的例子.它是显示如何使用@EmbeddedId
注释的示例的一部分:
@Entity
public class Employee implements java.io.Serializable
{
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name="lastName", column=@Column(name="LAST_NAME"),
@AttributeOverride(name="ssn", column=@Column(name="SSN"))
})
private EmbeddedEmployeePK pk;
...
}
Run Code Online (Sandbox Code Playgroud)
的EmbeddedEmployeePK
类是一个相当简单的@Embeddable
类来定义对@Columns
:lastName
和ssn
.
哦,我从Rubinger&Burke的O'Reilly的Enterprise JavaBeans 3.1中提取了这个例子.
在此先感谢您提供给我的任何帮助.
我有一个Sinatra应用程序,在我的大多数控制器中,json进入并在params对象中自动拾取.但是,除非我使用before方法来拉取request.body参数将它们解析为JSON并将它们合并到params散列中,否则我的后期操作根本没有得到参数.
这是控制器,以及过滤方法:
before do
if request.request_method == "POST"
body_parameters = request.body.read
params.merge!(JSON.parse(body_parameters))
end
end
post '/locations/new' do
content_type :json
puts "params after post params method = #{params.inspect}"
... other code ...
end
Run Code Online (Sandbox Code Playgroud)
我看到的输出基本上是控制器动作中的参数实际上在那里正确.但是,如果我在通话前注释掉参数是空的.
之前的感觉就像一个黑客.无论怎样,我都希望这些参数进来......我必须在那里做错事但我不知道它是什么.
任何帮助将深深感激......
我正在尝试组合一系列可以使用ActiveRecord动态创建和执行复杂查询的类.我对整个做法感到非常满意:
MyModel.select("id, name, floober").join(:creator).where(:is_active => true)
Run Code Online (Sandbox Code Playgroud)
我正在努力的是使用这些东西建立一个查询,无法提前确定每种可能的方法(连接数,数量或where子句,限制,组等)的数量.我可能有2个连接,或者没有连接,具体取决于它的调用位置.
由于我如何得到这些东西的性质 - 连接列表,列列表,where子句列表等 - 我可以盲目地将它们链接在一起.我必须将列连接在一起,排列连接,链接where子句,所以我无法遍历各种列表.
我试图避免编写任何原始SQL.
我试过的一件事是将ruby语句作为一个字符串构建,然后在最后评估它,当我完成后,我感到很脏,就像我需要洗澡一样.我正在寻找的是一种缓存查询状态的方法,直到所有部分都已累积,然后执行它们.
我是否"走出Rails"?
提前致谢...
免责声明:代码取自红宝石公案
这是对类中常量范围的讨论.这是几个类的定义:
class Animal
LEGS = 4
def legs_in_animal
LEGS
end
end
class MyAnimals
LEGS = 2
class Bird < Animal
def legs_in_bird
LEGS
end
end
end
Run Code Online (Sandbox Code Playgroud)
此时MyAnimals::Bird.new.legs_in_bird
在2中做结果我理解为什么 - 在继承heirarchy之前搜索常量的词法空间.
然后定义这个类:
class MyAnimals::Oyster < Animal
def legs_in_oyster
LEGS
end
end
Run Code Online (Sandbox Code Playgroud)
该教程说,现在调用MyAnimals::Oyster.new.legs_in_oyster
4的结果,我无法弄明白.在我看来,Oyster是MyAnimals中的嵌套类,因此我希望它的行为与Birds类在上面的行为相同.我遗漏了一些关于用明确的范围方法声明类Oyster的关键信息.
任何人都可以向我解释这个吗?我已经通过Google找到了数百个红宝石课程教程,但没有一个能解决这个问题.
先感谢您...
我有这种情况,我正在尝试<template>
在我的html源代码中使用该标记:
<template id="some-id">
<div id="content-container">
<span>{{some_string}}</span>
<div>
</template>
Run Code Online (Sandbox Code Playgroud)
这最终将模板放在文档中,但不认为它在DOM中.这意味着在支持模板标记的浏览器中找不到$("#content-container").如果我搜索:
$("#some-id")
Run Code Online (Sandbox Code Playgroud)
我得到了回报:
<template id=?"some-id">?
#document-fragment
<div id="content-container">
<span>{{some_string}}</span>
<div>
</template>?
Run Code Online (Sandbox Code Playgroud)
这些都不会让我感到惊讶.我需要知道的是克隆文档片段的内容并拥有一个新节点,然后我可以将其放在我想要的DOM中.
我已经找到了如何使用jQuery实现这一点的示例,但是围绕这些内容的大部分代码已经在使用jQuery,我需要知道如何使用jQuery来执行此操作.
我的第一个想法是获取html,然后使用它来创建一个新节点:
stuff = $("#some-id").html()
new_node = $(stuff)
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
Error: Syntax error, unrecognized expression: <the html string>
Run Code Online (Sandbox Code Playgroud)
我不知道错误是否是由胡子语法引起的.我认为必须有一个jQuery解决方案来解决这个问题,但是当我用Google搜索时,我得到了jQuery模板的大量命中,这是不同的.
有没有人有想法,答案或指向网站/页面的指针,可以帮助我完成这项工作?我试图避免拼凑一些hackish.
编辑:我最终找到了这个解决方案(我还在测试它,以确保它是一个解决方案,但它看起来很有希望);
template = $("#some-id")
content = template.html()
new_div = $("<div></div>")
new_div.html(content)
Run Code Online (Sandbox Code Playgroud)
我最终得到了我以前不需要的div,但我可以忍受.但这种感觉很糟糕.有没有人有更好的方法呢?好处是它仍然可以在尚未完全适应模板标签行为的浏览器中运行.
谢谢!
ruby ×3
activerecord ×1
attributes ×1
class ×1
dbeaver ×1
devise ×1
html ×1
java ×1
jpa ×1
jquery ×1
json ×1
overriding ×1
sinatra ×1
syntax ×1
templatetag ×1