小编Sim*_*tti的帖子

拯救"未定义的方法'xyz'为nil:nilClass"错误

我有以下show动作:

def show
  @name = params[:id]
  rescue ActiveRecord::RecordNotFound
  redirect_to :action => 'index'     
  @rpm = FedoraRpm.find_by_name(@name, :include => :rpm_comments)
  @page_title = @rpm.name
end
Run Code Online (Sandbox Code Playgroud)

即使我在那里添加了一个救援声明,它似乎也不起作用,当我尝试查看不存在的URL时,我收到此错误:

undefined method 'name' for nil:NilClass

我知道这可能与@page_title变量有关,但我该如何解决这个问题呢?

ruby ruby-on-rails

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

如何更改脚手架的名称而不重新创建它?

我创建了一个脚手架“示例”,并对它的控制器和视图进行了许多更改。

现在我想将其重命名为“sample”,有什么办法可以在不破坏任何东西的情况下做到这一点?手动编辑控制器、模型、视图和迁移文件会很困难,所以我希望有一些东西可以缓解这个问题。

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

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

更新宝石后Rails错误

运行后gem update,当我尝试启动rails时出现以下错误:

$ rails s
/usr/lib/ruby/1.9.1/rubygems.rb:238:in `activate': can't activate rack (~> 1.4.5, runtime)
for ["actionpack-3.2.12", "railties-3.2.12"], already activated rack-1.5.2 for ["rack-
ssl-1.3.3", "railties-3.2.12"] (Gem::LoadError)
    from /usr/lib/ruby/1.9.1/rubygems.rb:254:in `block in activate'
    from /usr/lib/ruby/1.9.1/rubygems.rb:253:in `each'
    from /usr/lib/ruby/1.9.1/rubygems.rb:253:in `activate'
    from /usr/lib/ruby/1.9.1/rubygems.rb:254:in `block in activate'
    from /usr/lib/ruby/1.9.1/rubygems.rb:253:in `each'
    from /usr/lib/ruby/1.9.1/rubygems.rb:253:in `activate'
    from /usr/lib/ruby/1.9.1/rubygems.rb:1065:in `gem'
    from /usr/local/bin/rails:18:in `<main>'
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我,这意味着什么以及如何解决问题?

ruby gem rubygems ruby-on-rails ruby-on-rails-3

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

Enumerable#all的正确用例是什么?和可枚举#在Ruby中?

我跟上的用例感到困惑Enumerable#all?Enumerable#each.例如

['.txt', '-hello.txt'].all? do |suffix|
        puts "temp#{suffix}"
      end
Run Code Online (Sandbox Code Playgroud)

适合我和我

['.txt', '-hello.txt'].each do |suffix|
        puts "temp#{suffix}"
      end
Run Code Online (Sandbox Code Playgroud)

也适合我.

我应该选择什么样的.all?还是.each

ruby enumerable

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

如何在Mail gem中使用body erb模板?

我想在Mail erb模板中用作body.当我在Pony gem上设置它时,它可以工作.

post 'test_mailer' do
  Mail.deliver do
    to ['test1@me.com', 'test2@me.com']
    from 'you@you.com'
    subject 'testing'
    body erb(:test_mailer) # this isn't working
  end
end

private

fields = [1, 2] # some array
Run Code Online (Sandbox Code Playgroud)

ERB文件

<% fields.each do |f| %>
  <%= f %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

ruby email pony

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

使用nginx +独角兽的多个Rails 4应用程序

我正在寻找与独角兽建立一个nginx服务器.我设置了第一个应用程序,但它位于根"/"上.我真正想要的是键入localhost/app1并且它会运行,而如果只是输入到root,html或php页面将会打开.

任何线索?

这是当前的nginx.config:

worker_processes 4;

user nobody nogroup; # for systems with a "nogroup"

pid /tmp/nginx.pid;
error_log /tmp/nginx.error.log;

events {
  worker_connections 1024; # increase if you have lots of clients
  accept_mutex off; # "on" if nginx worker_processes > 1
}

http {
  include mime.types;


  default_type application/octet-stream;
  access_log /tmp/nginx.access.log combined;

  sendfile on;

  tcp_nopush on; # off may be better for *some* Comet/long-poll stuff
  tcp_nodelay off; # on may be better for some Comet/long-poll stuff

  gzip on;
  gzip_http_version 1.0;
  gzip_proxied any;
  gzip_min_length …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails nginx unicorn

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

Rails Namespaced Helper

Api::V1::UsersController在app/controllers/api/v1中有一个控制器.我Api::V1::ErrorHelper在app/helpers/api/v1中有一个帮助模块.

我想访问控制器内的辅助模块的方法.所以,我调用了控制器的辅助方法,将模块传递给它:

class Api::V1::UsersController < ApplicationController

  helper Api::V1::ErrorHelper

  #other code
end
Run Code Online (Sandbox Code Playgroud)

但是当我访问控制器内部的一个辅助方法(respond_with_error)时,我得到以下异常:

undefined method `respond_with_error' for #<Api::V1::UsersController:0x007fad1b189578>
Run Code Online (Sandbox Code Playgroud)

如何从控制器访问此帮助程序?

(我使用的是Rails 3.2)

谢谢.

ruby ruby-on-rails helper

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

使用jQuery将网页调整到facebook标签

我正在尝试将网页调整为Facebook标签,我为标签创建了新页面并从目标网页加载内容,一切顺利,问题是我无法重新调整此内容的大小以适应810px.

HTML:

<html>
    <head>
        <meta charset='utf-8'> 
        <link rel="stylesheet" type="text/css" href="css/style.css">
        <script type="text/javascript" src="js/jquery.js"></script> 
        <script type="text/javascript" src="js/facebook-tab.js"></script>  
    </head>

    <body>
        <div id="facebook-contant"> 
        </div>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$(document).ready(function(){   
    $( "#facebook-contant" ).load('recommendations.html #rec-board-holder');
});
Run Code Online (Sandbox Code Playgroud)

任何建议如何更改负载内容大小?

html css jquery facebook

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

如何在控制器和模型Ruby on Rails之间共享常量

是否可以在控制器和模型之间共享常量?

比如product.rb我有

PRODUCT_TYPES = %w[one two]
Run Code Online (Sandbox Code Playgroud)

我希望PRODUCT_TYPES控制器中也能保持不变.

ruby-on-rails

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

如何将rails 4.0更新为rails 4.1

我应该如何从更新现有的应用程序rails 4.0rails 4.1.我知道我必须更新宝石.是否还有其他任何配置可在应用程序中修改.

ruby-on-rails ruby-on-rails-4.1

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