这不是Rails特有的 - 我只是以Rails为例.
我在Rails中有一个模型:
class Item < ActiveRecord::Base
def hello
puts "Hello, #{self.name}"
end
end
Run Code Online (Sandbox Code Playgroud)
(假设Item模型(类)有一个叫做的方法name).我什么时候需要使用self.name,何时可以使用name?(例如#{name})
使用Rspec与Factory Girl.试图检查我的控制器中分配了哪些数据(并对其进行测试).我读过的每一篇文章都说我应该能够从assigns()中得到一些东西,但它一直在返回nill
调节器
def index
@stickies = Sticky.where(:user_id => current_user.id)
end
Run Code Online (Sandbox Code Playgroud)
规格
it "should assign stickies" do
foo = assigns(:stickies)
puts "foo = #{foo}"
end
Run Code Online (Sandbox Code Playgroud)
产量
foo =
Run Code Online (Sandbox Code Playgroud)
我使用了错误的语法吗?有一个更好的方法吗?谢谢!!
在类名之前,我已经在Rails中看到了很多双冒号的用法.
例如:
require ::File.expand_path('../config/environment', __FILE__)
Run Code Online (Sandbox Code Playgroud)
我知道是什么Module::Class::Constant意思,但是::Class?
我觉得这可以改善(红宝石的常见感觉).我正试图根据值unq一系列哈希.在这个例子中,我想要元素的颜色.苔藓和雪是冒名顶替者.
# remove unique array of hashes based on a hash value
a = [
{ :color => "blue", :name => "water" },
{ :color => "red", :name => "fire" },
{ :color => "white", :name => "wind" },
{ :color => "green", :name => "earth" },
{ :color => "green", :name => "moss" },
{ :color => "white", :name => "snow" }
]
# remove moss and snow
uniques = []
a.each_with_index do |r, i|
colors = uniques.collect {|e| …Run Code Online (Sandbox Code Playgroud) 从Ruby中检测解释器是否在Windows上运行的正确方法是什么?"正确"包括它适用于所有主要版本的Ruby,包括1.8.x,1.9.x,JRuby,Rubinius和IronRuby.
目前排名靠前的"红宝石检测窗口"的Google搜索结果都是错误的或过时的.例如,一种不正确的方法是:
RUBY_PLATFORM =~ /mswin/
Run Code Online (Sandbox Code Playgroud)
这是不正确的,因为它无法在Windows上检测到mingw版本或JRuby.
什么是正确的方法?
基本上只需要检查以确保设置了URL参数.我是如何用PHP完成的:
if(isset($_POST['foo']) && isset($_POST['bar'])){}
Run Code Online (Sandbox Code Playgroud)
这是RoR中isset()的粗略/最佳等价物吗?
if(!params['foo'].nil? && !params['bar'].nil?) end
Run Code Online (Sandbox Code Playgroud) 有没有人知道Rails Helper可以自动将相应的文章添加到给定的字符串中?例如,如果我将"apple"传递给该函数,它将变成"一个苹果",而如果我要发送"香蕉"它将返回"香蕉"
我已经检查了Rails TextHelper模块但找不到任何东西.如果这是重复的道歉,但无可否认,这是一个难以找到的答案......
我有一个包含载波上传的图片:
Image.find(:first).image.url #=> "/uploads/image/4d90/display_foo.jpg"
Run Code Online (Sandbox Code Playgroud)
在我看来,我想找到这个绝对的网址.追加root_url会导致双倍/.
root_url + image.url #=> http://localhost:3000//uploads/image/4d90/display_foo.jpg
Run Code Online (Sandbox Code Playgroud)
我不能使用url_for(我知道的),因为这要么允许传递的路径,或者选项标识资源和列表:only_path选项.由于我没有可通过"controller"+"action"识别的资源,因此我无法使用该:only_path选项.
url_for(image.url, :only_path => true) #=> wrong amount of parameters, 2 for 1
Run Code Online (Sandbox Code Playgroud)
在Rails3中创建一个完整URL的路径最干净,最好的方法是什么?
我想安装openCV来矢量化图像,但是有关于Xcode和Ruby的一系列错误消息.
首先,我使用终端安装openCV , brew install opencv.
然后,我收到错误消息,表明系统不喜欢我的ruby版本.
/usr/local/Homebrew/Library/Homebrew/brew.rb:12:in `<main>':
Homebrew must be run under Ruby 2.3! You're running 2.0.0. (RuntimeError)
Run Code Online (Sandbox Code Playgroud)
所以,我想升级我的红宝石.我从这篇文章中了解了几个更新策略.第一次ruby升级试用:brew link --overwrite ruby&brew unlink ruby && brew link ruby得到
Error: No such keg: /usr/local/Cellar/ruby
Run Code Online (Sandbox Code Playgroud)
然后第二次ruby升级试用:brew upgrade ruby并看到以下错误消息.
Error: Xcode alone is not sufficient on Sierra.
Install the Command Line Tools:
xcode-select --install
Run Code Online (Sandbox Code Playgroud)
此错误消息表示我需要安装已安装的Xcode.所以,我检查我的Xcode状态,code-select -p并获得/Applications/Xcode.app/Contents/Developer哪些意味着我没事.
我看到一个关于你在哪里安装python 的评论可能是个大问题.从来源引用:
如果你看到
/usr/local/bin/python3你正在使用Homebrew版本的Python.如果是输出,/usr/bin/python3那么您错误地使用了Python的系统版本.
我检查which python3 …