小编Joa*_*ira的帖子

如何在Rails 3中测试cookies.permanent.signed

我在某个控制器中有一个动作,它在永久签名的cookie中设置了一些值,如下所示:


def some_action
    cookies.permanent.signed[:cookie_name] = "somevalue"
end

在一些功能测试中,我试图测试cookie是否设置正确起诉:


test "test cookies" do
    assert_equal "somevalue", cookies.permanent.signed[:cookie_name]
end


但是,当我运行测试时,我收到以下错误:


NoMethodError: undefined method `permanent' for #

如果我只尝试:


test "test cookies" do
    assert_equal "somevalue", cookies.signed[:cookie_name]
end


我明白了:


NoMethodError: undefined method `signed' for #

如何在Rails 3中测试签名的cookie?

ruby-on-rails jrubyonrails ruby-on-rails-3

18
推荐指数
4
解决办法
6346
查看次数

在轨道上用nokogiri和ruby更改href属性

我有一个带链接链接的HTML文档,例如:

<html>
  <body>
   <ul>
     <li><a href="http://someurl.com/etc/etc">teste1</a></li>
     <li><a href="http://someurl.com/etc/etc">teste2</a></li>
     <li><a href="http://someurl.com/etc/etc">teste3</a></li>
   <ul>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我希望使用Ruby on Rails,使用nokogiri或其他方法来获得这样的最终文档:

<html>
  <body>
    <ul>
      <li><a href="http://myproxy.com/?url=http://someurl.com/etc/etc">teste1</a></li>
      <li><a href="http://myproxy.com/?url=http://someurl.com/etc/etc">teste2</a></li>
      <li><a href="http://myproxy.com/?url=http://someurl.com/etc/etc">teste3</a></li>
    <ul>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳策略是什么?

html string parsing ruby-on-rails nokogiri

17
推荐指数
1
解决办法
9465
查看次数

在capistrano deploy.rb中无法找到文件

我有一个rails 3.0.5应用程序,我正在设置capistrano使用食谱.

在我的配置目录中,我有一个名为"database_capistrano.rb"的文件,在我的deploy.rb中,也在config目录中,我有以下行,就在开头:

require 'database_capistrano'

但是我得到了:

`require': no such file to load -- capistrano_database (LoadError)

也尝试:

require 'database_capistrano.rb'

而且不工作......

如何在Rails 3.0.5中包含capistrano deploy.rb中的文件?

deployment capistrano ruby-on-rails-3

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

在java Web应用程序中加载外部库

我的方案如下:

我有一个部署到servlet容器的WebApp.war.此WebApp.war在WEB-INF/lib中包含以下库:

  • lib_a.jar
  • lib_b.jar

我有另一个库,比如lib_vendor.jar,由于许可问题我无法在WebApp/WEB-INF/lib中部署,所以我让我们的客户在安装应用程序后在tomcat/lib中复制这个库.但由于lib_vendor.jar需要在Web应用程序类加载器中加载的lib_a.jar和lib_b.jar,因此我无法使用lib_vendor.jar.

如何在Web应用程序的同一个类加载器中加载外部库(不在WEB-INF/lib中)?

java tomcat servlets classloader

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

无法理解Rails 4中的资产如何在生产中发挥作用

我跑的时候

rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

编译的资产写入公共/资产:

I, [2013-07-21T02:16:00.987988 #13881]  INFO -- : Writing /home/jpereira/dev/saleshub/public/assets/glyphicons-halflings-white-62b67d9edee3db90d18833087f848d6e.png
I, [2013-07-21T02:16:01.037698 #13881]  INFO -- : Writing /home/jpereira/dev/saleshub/public/assets/glyphicons-halflings-c806376f05e4ccabe2c5315a8e95667c.png
I, [2013-07-21T02:16:01.053630 #13881]  INFO -- : Writing /home/jpereira/dev/saleshub/public/assets/marketing/slider-base/slide-01-b85e542137a02bedd6c30dede873ef1e.jpg
I, [2013-07-21T02:16:01.066371 #13881]  INFO -- : Writing /home/jpereira/dev/saleshub/public/assets/marketing/slider-base/slide-02-e5106e911d8a0289bfaf2ac64308a640.jpg
I, [2013-07-21T02:16:01.077879 #13881]  INFO -- : Writing /home/jpereira/dev/saleshub/public/assets/marketing/slider-base/slide-03-990dccbed4c70f0118b7d30d98094811.jpg
I, [2013-07-21T02:16:01.965560 #13881]  INFO -- : Writing /home/jpereira/dev/saleshub/public/assets/application-98713f9763bccfd6bc05dae422d3e242.js
I, [2013-07-21T02:16:02.068469 #13881]  INFO -- : Writing /home/jpereira/dev/saleshub/public/assets/application-a40c2cd9b0f20b2a7f3b62d45159fbb3.css
Run Code Online (Sandbox Code Playgroud)

然后,我在生产中启动应用程序,其中:

RAILS_ENV=production rails s

=> Booting WEBrick
=> Rails 4.0.0 application starting in production on http://0.0.0.0:3000
=> Run `rails server …
Run Code Online (Sandbox Code Playgroud)

deployment ruby-on-rails ruby-on-rails-4

3
推荐指数
1
解决办法
4939
查看次数

如何使用 assert_select 断言输入元素的值

鉴于视图中的此 HTML:

<form id="new_merchant_user" method="post">
  <fieldset>
    <div id='legend'>
       <legend>Recover Pasword</legend>
     </div>
     <input id="merchant_user_email" name="merchant_user[email]" type="text" value="" />
     <input class="btn btn-success" name="commit" type="submit" value="Send Reset Instructions" />

   </fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)

如何使用 assert_select 选择按钮的值?我试试

assert_select 'form input[type=submit]', "Send Reset Instructions"
Run Code Online (Sandbox Code Playgroud)

但它失败了

<Send Reset Instructions> expected but was
<>..
Expected 0 to be >= 1.
Run Code Online (Sandbox Code Playgroud)

基本上什么都不选。

我在这里做错了什么?

testing ruby-on-rails

2
推荐指数
1
解决办法
2528
查看次数

Spring将TaskExecutor和TaskScheduler用作相同类型

我有以下配置:

@org.springframework.context.annotation.Configuration
@EnableJpaRepositories
@EnableAsync
@EnableScheduling
public class MyConfiguration {


    @Bean
    public TaskExecutor taskExecutor() {

        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(10);
        executor.setMaxPoolSize(20);
        executor.setQueueCapacity(50);
        return executor;
    }

    @Bean
    public TaskScheduler taskScheduler() {

        ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
        scheduler.setPoolSize(10);
        return scheduler;
    }

}
Run Code Online (Sandbox Code Playgroud)

然后,我有一个侦听ContextRefreshEvents的类,例如:

@Component
public class ScreenerScheduler implements ApplicationListener<ContextRefreshedEvent> {

    @Inject
    private TaskScheduler scheduler;

    @Inject
    private ApplicationContext context;

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序(网络)时,我得到:

Error creating bean with name 'screenerJobExecutor': Injection of autowired dependencies  failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could …
Run Code Online (Sandbox Code Playgroud)

java spring

2
推荐指数
1
解决办法
8600
查看次数

Rails如何计算操作的响应代码

Rails如何计算控制器操作的响应代码?

给定以下控制器操作:

def update
  respond_to do |format|
    if @user.update(user_params)
      format.html { redirect_to @user, notice: 'User was successfully updated.' }
      format.json { head :no_content }
    else
      format.html { render action: 'show' }
      format.json { render json: @user.errors, status: :unprocessable_entity }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

(我使用相同的视图来显示和编辑记录)

有了这个积极的测试:

test "should update basic user information" do
  user = users(:jon)
  user.first_name="Jonas"
  put :update, :id => user.id, :merchant_user =>user.attributes
  assert_response :found
  user = Merchant::User.find(user.id)
  assert user.first_name == "Jonas", "Should update basic user information"
end
Run Code Online (Sandbox Code Playgroud)

负面测试是这样的:

test "should …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

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