我有以下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变量有关,但我该如何解决这个问题呢?
我创建了一个脚手架“示例”,并对它的控制器和视图进行了许多更改。
现在我想将其重命名为“sample”,有什么办法可以在不破坏任何东西的情况下做到这一点?手动编辑控制器、模型、视图和迁移文件会很困难,所以我希望有一些东西可以缓解这个问题。
运行后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)
任何人都可以帮助我,这意味着什么以及如何解决问题?
我跟上的用例感到困惑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?
我想在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) 我正在寻找与独角兽建立一个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) 我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)
谢谢.
我正在尝试将网页调整为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)
任何建议如何更改负载内容大小?
是否可以在控制器和模型之间共享常量?
比如product.rb我有
PRODUCT_TYPES = %w[one two]
Run Code Online (Sandbox Code Playgroud)
我希望PRODUCT_TYPES控制器中也能保持不变.
我应该如何从更新现有的应用程序rails 4.0来rails 4.1.我知道我必须更新宝石.是否还有其他任何配置可在应用程序中修改.