哪个rails vs rails -v vs ruby

时间:2018-02-11 21:21:31

标签: ruby-on-rails ruby ruby-on-rails-5

我还是Ruby / Rails的新手,大约一个月了,我想确保理解这些看似重要的概念。特别是因为我预计必须使用多个版本。

哪个ruby - 返回一个路径。这是当前还是默认的Ruby解释器?如果我执行.rb文件,那条路径是否正在使用Ruby的版本?

ruby​​ -v - 似乎是当前使用的ruby版本(直接与rvm use ruby-#.#.#对应)

rails -v - 如果我有多个Rails,它会给我哪些Rails?似乎不是最新版本。

哪些rails - 似乎至少部分对应于你从r​​ails -v获得的Rails版本,因为当我使用rvm时使用ruby - #。#。#并在ruby版本之间进行更改,which rails/rails -v的输出发生了变化。

您可以设置在执行rake db:seed之类的操作时调用哪些rails版本,还是总是使用与执行rake/rails about时获得的应用程序相同的Rails版本?

1 个答案:

答案 0 :(得分:4)

<form [formGroup]="form" (ngSubmit)="onSubmit()"> <!-- NAME INPUT --> <div class="form-group"> <div class="input-group" [ngClass]="{'error' : form.controls['name'].errors && (form.controls['name'].touched || submitted)}"> <div class="input-group-prepend"> <span class="input-group-text"> <i class="fas fa-user"></i> </span> </div> <input type="text" class="form-control" formControlName="name" name="name" placeholder="Name"> </div> <div *ngIf="form.controls['name'].errors && (form.controls['name'].touched || submitted)" class="text-danger"> <div *ngIf="form.controls['name'].errors.required">Name is required.</div> </div> </div> <!-- EMAIL INPUT --> <div class="form-group"> <div class="input-group" [ngClass]="{'error' : form.controls['email'].errors && (form.controls['email'].touched || submitted)}"> <div class="input-group-prepend"> <span class="input-group-text"> <i class="fas fa-at"></i> </span> </div> <input type="email" class="form-control" formControlName="email" name="_replyto" placeholder="Your email"> </div> <div *ngIf="form.controls['email'].errors && (form.controls['email'].touched || submitted)" class="text-danger"> <div *ngIf="form.controls['email'].errors.required">Email is required.</div> <div *ngIf="form.controls['email'].errors.pattern">Please enter valid email address.</div> </div> </div> <!-- SUBJECT INPUT --> <div class="form-group"> <div class="input-group" [ngClass]="{'error' : form.controls['subject'].errors && (form.controls['subject'].touched || submitted)}"> <div class="input-group-prepend"> <span class="input-group-text"> <i class="fas fa-question-circle"></i> </span> </div> <input type="text" class="form-control" formControlName="subject" name="_subject" placeholder="Subject"> </div> <div *ngIf="form.controls['subject'].errors && (form.controls['subject'].touched || submitted)" class="text-danger"> <div *ngIf="form.controls['subject'].errors.required">Subject is required.</div> </div> </div> <!-- MESSAGE INPUT --> <div class="form-group"> <div class="input-group" [ngClass]="{'error' : form.controls['message'].errors && (form.controls['message'].touched || submitted)}"> <div class="input-group-prepend"> <span class="input-group-text"> <i class="fas fa-envelope"></i> </span> </div> <textarea name="message" class="form-control" formControlName="message" rows="3" placeholder="Message"></textarea> </div> <div *ngIf="form.controls['message'].errors && (form.controls['message'].touched || submitted)" class="text-danger"> <div *ngIf="form.controls['message'].errors.required">Message is required.</div> </div> </div> <!-- SUBMIT BUTTON --> <button type="submit" id="submit" class="btn btn-primary float-right"> <span class="fas fa-paper-plane"></span> Send </button> </form> 是一个Unix实用程序,它会搜索您的PATH以查找与您提供的参数匹配的可执行文件,并返回该可执行文件的完整路径。您可以使用路径中包含的任何可执行文件执行此操作,而不仅仅是Ruby或Rails。

另一方面,当您键入which时,您实际上使用ruby -v作为命令行参数调用Ruby可执行文件,告诉它返回其版本。您总是会获得当前Ruby的版本。同样适用于Rails。

Ruby和Rails的切换版本取决于您使用的管理工具。对于RVM(Ruby版本管理器),-v将当前版本的Ruby切换到Ruby 2.5.0(假设您以前安装过它)。对于rbenv,您通常希望编辑项目的use ruby 2.5.0文件,或者您可以使用.ruby_version动态切换到Ruby 2.5.0。 Uncle Google提供了有关更加模糊的管理工具的更多信息。