2017年8月22日
1.在学习rails guides中的MiniTest, 在系统测试的过程中要使用chromedriver,在mac中通过下载安装(需要放置在/usr/local/bin目录中)和通过brew的方式安装chromedriver都显示未成功,输入rails test:system,显示如下结果
SocketError: getaddrinfo: nodename nor servname provided, or not known
问题的原因之一包括,路径没有设置成功,终端中输入$PATH,显示安装路径,也是无误。猜测可能是$PATH问题
2017年9月9日解决
#/private/etc/hosts文件中添加如下语句
127.0.0.1 localhost
2017年8月25日
终端输入rvm list显示如下问题,也可能是$PATH问题
Warning! PATH is not properly set up, '/Users/jayzen/.rvm/gems/ruby-2.4.0/bin' is not at first place.
Usually this is caused by shell initialization files. Search for 'PATH=...' entries.
You can also re-add RVM to your profile by running: 'rvm get stable --auto-dotfiles'.
To fix it temporarily in this shell session run: 'rvm use ruby-2.4.0'.
To ignore this error add rvm_silence_path_mismatch_check_flag=1 to your ~/.rvmrc file.
rvm rubies
2017年9月5日
require "xx"
#当xx是绝对路径时,load xx
#当xx是相对路径时,会从$LOAD_PATH中寻找"xx"文件
开始读rebuilding rails 第一章,其中require “xxx”文件,该文件是相对目录文件,并不能在$LOAD_PATH路径中找到文件
问题:想了解require ”xx“, 或者load "xx"真正的查找路径。
一直对这个问题比较疑惑,根据ruby api的介绍,如果”xx“是绝对路径,则从绝对路径中查找,如果是相对路径,则会去$LOAD_PATH中查找。我在自己的本地文件建立文件夹test,test文件夹的中存在两个文件,分别是redflag.rb文件和test_events.rb文件,文件内容分别如下:
#redflag.rb
def event(name)
puts "ALTER: #{name}" if yield
end
Dir.glob("*events.rb").each{ |file| load file}
#test_events.rb
event "an event that always happens" do
true
end
event "an event that never happens" do
false
end
#终端执行文件,ruby reflag.rb
ALTER: an event that always happens
如上代码叙述,正确load了文件,并且执行了相关的代码。
test文件夹的目录为:
/Users/jayzen/workshop/dsl
puts $LOAD_PATH的结果为:
/Users/jayzen/.rvm/gems/ruby-2.4.0@global/gems/did_you_mean-1.1.0/lib
/Users/jayzen/.rvm/rubies/ruby-2.4.0/lib/ruby/site_ruby/2.4.0
/Users/jayzen/.rvm/rubies/ruby-2.4.0/lib/ruby/site_ruby/2.4.0/x86_64-darwin16
/Users/jayzen/.rvm/rubies/ruby-2.4.0/lib/ruby/site_ruby
/Users/jayzen/.rvm/rubies/ruby-2.4.0/lib/ruby/vendor_ruby/2.4.0
/Users/jayzen/.rvm/rubies/ruby-2.4.0/lib/ruby/vendor_ruby/2.4.0/x86_64-darwin16
/Users/jayzen/.rvm/rubies/ruby-2.4.0/lib/ruby/vendor_ruby
/Users/jayzen/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0
/Users/jayzen/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/x86_64-darwin16
从上面可知,load的文件是相对目录,但是$LOAD_PATH中并没有包括test的文件夹路径,那么load的真正加载路径是什么?
2017年9月12日
irb终端查看ruby方法的详细信息
2017年10月28日
bootstrap中的dropdown插件和turbolinks有冲突,删除turbolinks可以避免drowdown无效的情况
2017年11月4日
下面的代码中form_tag只能提交到本url中的controller和action,解决方法是去除首尾的form标签
<form class="form-inline">
<div class="form-group">
<%= form_tag root_path, :method => :get do %>
<%= text_field_tag :search, params[:search], class: "form-control", placeholder: "输入搜索内容...." %>
</div>
<%= submit_tag "搜索", :name => nil, class: "btn btn-default" %>
<% end %>
</form>