小编bra*_*h14的帖子

是否有可能将本地人通过部分传递到另一部分?

这是一个例子来说明这个问题:

应用程序/视图/职位/ show.html.haml

.post
  = render partial: 'avatar', locals: { user: @post.user }
  = @post.title
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ _avatar.html.haml

.avatar
  = render partial: 'avatar_image', locals: { user: user }
  = user.name
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ _avatar_image.html.haml

= image_tag user.image.url
Run Code Online (Sandbox Code Playgroud)

将部分接收的局部传递_avatar.html.haml给部分_avatar_image.html.haml将消除重复本地的需要(此处:) { user: user }.

我知道,我可以使用实例变量.但我想知道是否有办法将所有收到的当地人一般性地传递给基础部分.

ruby-on-rails partials

7
推荐指数
1
解决办法
2071
查看次数

如何根据特征实现FactoryGirl的条件行为

我有一个用户工厂.我希望默认情况下确认用户.但鉴于一个特点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)

ruby testing factory-bot

5
推荐指数
1
解决办法
1882
查看次数

如何编译代码 ClojureScript 以在 PhantomJS 中使用?

我正在尝试在 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)

现在,如果我使用evaluatePhantomJS 网页对象的函数 [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)

phantomjs clojurescript

5
推荐指数
1
解决办法
411
查看次数