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>

results matching ""

    No results matching ""