这是一个例子来说明这个问题:
.post
= render partial: 'avatar', locals: { user: @post.user }
= @post.title
Run Code Online (Sandbox Code Playgroud)
.avatar
= render partial: 'avatar_image', locals: { user: user }
= user.name
Run Code Online (Sandbox Code Playgroud)
= image_tag user.image.url
Run Code Online (Sandbox Code Playgroud)
将部分接收的局部传递_avatar.html.haml
给部分_avatar_image.html.haml
将消除重复本地的需要(此处:) { user: user }
.
我知道,我可以使用实例变量.但我想知道是否有办法将所有收到的当地人一般性地传递给基础部分.
我有一个用户工厂.我希望默认情况下确认用户.但鉴于一个特点unconfirmed
,我不希望它们得到确认.
虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地执行此操作.
factory :user do
after(:create) do |user, evaluator|
# unwanted implementation details here
unless FactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)
user.confirm!
end
end
trait :unconfirmed do
end
end
Run Code Online (Sandbox Code Playgroud)
我正在考虑这些问题.但这不起作用并产生一个 未定义的方法"未经证实"
factory :user do
ignore do
unconfirmed = false
end
after(:create) do |user, evaluator|
user.confirm! unless evaluator.unconfirmed
end
trait :unconfirmed do
unconfirmed = true
end
end
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 ClojureScript 中编写 PhantomJS 脚本。我的目标是 Node 并使用 phantomjs-node [1]。我有一个基本的工作示例:
(def phantom (js/require "phantom"))
(defn -main [& args]
(-> phantom
(.create (fn [browser]
(-> browser
(.createPage (fn [page]
(-> page
(.open "http://google.com" (fn [status]
(if (= status "success")
(-> page (.render "example.png")))
(-> browser .exit)))))))))))
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用evaluate
PhantomJS 网页对象的函数 [2] ,则会出现以下错误:
phantom stdout: ReferenceError: Can't find variable: <namespace here>
Run Code Online (Sandbox Code Playgroud)
当编译成 JavaScript 时,要评估的代码包含 CLJS 命名空间,因此无法在 PhantomJS 的网页对象的上下文中正确评估。下面是一个例子:
(defn -main [& args]
(-> phantom
(.create (fn [browser]
(-> browser
(.createPage (fn …
Run Code Online (Sandbox Code Playgroud)