我正在尝试使用css使用以下代码来设置Rails链接的样式:
<%= link_to "Learn More", :controller => "menus", :action => "index", :class => "btn btn-inverse" %>
我希望这会创建一个看起来像这样的链接:
<a href="menus/" class="btn btn-inverse">Learn More</a>
相反,Rails正在渲染它-
<a href="/menus?class=btn+btn-inverse">Learn More</a>
其他人有这个问题/知道我在做什么吗? 我知道我可以通过手动创建锚标记而不是使用helper来避免此问题,但是我想知道是否有一种方法可以将css类信息传递给helper本身。 我正在使用Rails 3.2.6。
谢谢!
尝试通过控制台传递电子邮件时,出现以下错误:
OpenSSL::SSL::SSLError: hostname was not match with the server certificate
问题是我真的对证书等不了解太多,或者真的不知道如何开始对此进行故障排除,我尝试使用openssl
做一些调查,这是返回的证书。
我不知道服务器或我的Rails应用程序上运行的Postfix是否有问题,是否真的能提供帮助或线索。
~% openssl s_client -connect mail.myhostname.com:25 -starttls smtp
CONNECTED(00000003)
depth=0 /CN=myhostname
verify error:num=18:self signed certificate
verify return:1
depth=0 /CN=myhostname
verify return:1
---
Certificate chain
0 s:/CN=myhostname
i:/CN=myhostname
---
Server certificate
-----BEGIN CERTIFICATE-----
[...redacted...]
-----END CERTIFICATE-----
subject=/CN=myhostname
issuer=/CN=myhostname
---
No client certificate CA names sent
---
SSL handshake has read 1203 bytes and written 360 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: 1AA4B8BFAAA85DA9ED4755194C50311670E57C35B8C51F9C2749936DA11918E4
Session-ID-ctx:
Master-Key: 9B432F1DE9F3580DCC6208C76F96631DC5A4BC517BDBADD5F514414DCF34AC526C30687B96C5C4742E9583555A118232
Key-Arg : None
Start Time: 1292985376
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
---
250 DSN
Ruby / Rails在用于基本事物的糖方面做很多很酷的事情,我认为有一个非常普遍的场景,我想知道是否有人为它做了帮助或类似的工作。
a = Array.new(5, 1)
a.each_with_index do |x, i|
if i == 0
print x+1
elsif i == (a.length - 1)
print x*10
else
print x
end
end
请原谅丑陋,但这达到了人们想要的目的……是否有一种红宝石方式可以对循环的第一和最后做某事?
[编辑]我认为理想情况下,这将是对具有参数(数组实例,所有元素功能,第一个元素功能,最后一个元素功能)的Array的扩展...但是我愿意接受其他想法。
我已经使用railsinstaller在Windows上安装了Rails和Ruby。 问题是,当我运行rails命令时,它给了我:“系统找不到指定的路径。”
我正在运行Windows 7 x64和Ruby 2.20。
我尝试卸载Rails并重新安装; 那没有帮助。 像ruby -v
一样执行Ruby命令,但是rails -v=
无法正常工作。
如何在下面的过滤器中找到名称空间或模块“ Foo”的名称?
class ApplicationController < ActionController::Base
def get_module_name
@module_name = ???
end
end
class Foo::BarController < ApplicationController
before_filter :get_module_name
end
这似乎很基本,但是我是Ruby / Rails的初学者。 我只需要在控制器中返回HTTP 204。将
respond_to do |format|
format.html
end
返回204?
我刚刚使用创建了一个简单的Rails应用程序
rails new myapp
然后使用以下命令创建heroku堆栈:
heroku create --stack cedar
但是,当我尝试使用以下方法在Heroku上打开应用程序时:
heroku open
我明白了:
! No app specified.
! Run this command from an app folder or specify which app to use with --app <app name>
还有这个:
$ heroku open --app myapp
给我这个:
! App not found
我是否缺少明显的东西?
我在路由文件中添加了:
map.show_book "/show_book/:name/year/:year", :controller => "book", :action => "show_version"
我还补充说:
map.show_book "/show_book/:name", :controller => "book", :action => "show_version"
以显示最新书籍而不指定年份。
但它不起作用,如果我没有过年,它将无法在“ show_book / NAME”中找到路线。
您是否有一些想法为什么不起作用?
谢谢 !
PS。我知道我可以将year用作参数“?year = XXXX”,但是我想将year用作URL的一部分
我想编写一个使用RESTful Web服务API的Ruby on Rails应用程序,对结果执行一些逻辑,然后在我的视图中显示该数据。 例如,假设我想编写一个在search.twitter.com上进行搜索的程序。 使用纯红宝石,我可以创建以下方法:
def run(search_term='', last_id=0)
@results = []
url = URI.parse("http://search.twitter.com")
res = Net::HTTP.start(url.host, url.port) do |http|
http.get("/search.json?q=#{search_term}&since_id=#{last_id.to_s}")
end
@results = JSON.parse res.body
end
我很想将该方法作为私有方法放到我的Rails控制器中,但是我的一部分认为有一种更好的,更“ Rails”的方法可以做到这一点。 有最佳实践方法还是真的最佳方法?
我有兴趣设置一个监视服务,当Resque队列中的作业太多时,该服务将为我分页(我有大约6个队列,每个队列有不同的编号)。 我还想设置一个非常类似的监视服务,当我在队列中超过一定数量的失败作业时,它将提醒我。
我的问题是,我在Redis服务器上看到很多与Resque相关的键和混乱。 我不一定看到一种简单的方法来获取每个队列的作业数或失败的作业数。 当前是否有一种简单的方法来从Redis抓取这些数据?
因此,我们有一个现有的Rails 2.3.5应用程序,它根本不支持国际化。 现在,我对Rails I18n非常熟悉,但是在/javascripts/
中有很多输出字符串。我不是这种方法的忠实拥护者,但是不幸的是,现在修复它为时已晚。
我们如何在Rails应用程序中国际化存储在JS文件中的字符串? Rails甚至不提供JS文件...
我以为我可以一直让Rails应用程序提供JS文件,但这似乎很糟糕。 有插件可以做到这一点吗?
有人可以向我解释该命令rake assets:precompile
的实际作用吗? 不幸的是,Rails指南没有提到它。 还有命令precompile
。有什么区别?
此外,有人可以告诉我何时必须在生产中运行rake assets:precompile
。 将所有应用程序文件部署到生产服务器后,是否可以在服务器控制台上运行它? 还是我在本地计算机上precompile
,然后部署所有文件?
谢谢大家
我在一个叫做:development的捆绑程序组中有很多宝石,包括ruby-debug。 当我运行bundle命令时,这些gems会被忽略,并且只会安装不在任何组中的gems。 如何确保捆绑程序不忽略:development组中的gems?
编辑:这就是我的Gemfile的样子。
source 'http://rubygems.org'
gem 'rails', '3.0.1'
# Auth gems
gem "devise", "1.1.3"
gem "omniauth"
# Bundle Mongoid gems
gem "mongoid", "2.0.0.beta.19"
gem "bson_ext"
# Asset gems
gem 'jquery-rails'
gem "jammit"
# Controller gems
gem 'inherited_resources', '1.1.2'
# View gems
gem 'haml'
gem 'formtastic', '~> 1.1.0'
# Nokogiri
gem "mechanize"
gem "json"
group :development do
gem "ruby-debug"
gem 'compass'
gem 'compass-colors'
gem 'pickler'
gem 'haml-rails'
gem 'rails3-generators'
gem "hpricot"
gem "ruby_parser"
gem 'fog'
end
我正在使用rSpec来测试我的应用程序。 在我的应用程序控制器中,我有一个像这样的方法:
def set_current_account
@current_account ||= Account.find_by_subdomain(request.subdomains.first)
end
是否可以在我的规范中设置request.subdomain? 也许在前块? 我是rSpec的新手,因此非常感谢您提供任何建议。
EEF
我有一个小的ruby脚本,我想在其中使用ActiveRecord轻松访问数据库模型。 最好的方法是什么?
运行Rails服务器时,出现以下错误:没有这样的文件要加载-openssl
我尝试在网上找到的解决方案。 我去〜/ .rvm / src / ruby-1.9.2-head / ext / openssl。 我输入:ruby extconf.rb,但是得到以下信息:
=== OpenSSL for Ruby configurator ===
=== Checking for system dependent stuff... ===
checking for t_open() in -lnsl... no
checking for socket() in -lsocket... no
checking for assert.h... yes
=== Checking for required stuff... ===
checking for openssl/ssl.h... no
=== Checking for required stuff failed. ===
Makefile wasn't created. Fix the errors above.
我无法使用make或make install。
我需要使用docker-compose创建Rails和Mysql容器。 当我尝试使用docker-compose up
在容器之间创建链接时,我得到
无法启动容器 9b271c58cf6aecaf017dadaf5b无法链接到未运行的容器: / puma_db_1 AS / puma_web_1 / db
档案
Dockerfile
FROM ubuntu:14.04
RUN apt-get -y update
RUN apt-get -y install git curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
RUN apt-get -y install libmysqlclient-dev
RUN git clone https://github.com/sstephenson/rbenv.git /root/.rbenv
RUN git clone https://github.com/sstephenson/ruby-build.git /root/.rbenv/plugins/ruby-build
RUN echo 'eval "$(rbenv init -)"' >> $HOME/.profile
RUN echo 'eval "$(rbenv init -)"' >> $HOME/.bashrc
RUN rbenv install 2.1.5
RUN rbenv global 2.1.5
RUN gem install rails -v 4.0.11
ADD app.tar.gz /home/
WORKDIR /home/app
RUN bundle install
EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0"]
泊坞窗,compose.yml
db:
image: mysql:latest
environment:
MYSQL_DATABASE: app_development
MYSQL_USER: mysql
DATABASE_PASSWORD: onetwo
ROOT_PASSWORD: onetwo
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
ports:
- "4000:3000"
links:
- db
有没有办法在控制台上为db:migrate和db:rollback运行rake命令?
等待Rails环境加载很糟糕!