class Books < ActiveRecord::Migration
def self.up
create_table :books do |t|
t.column :title, :string, :limit => 32, :null => false
t.column :price, :float
t.column :subject_id, :integer
t.column :description, :text
t.column :created_at, :timestamp
end
end
def self.down
drop_table :books
end
end
在上面rails迁移代码中:books是用符号代表参数吗? :title :price :string这些都是要干什么捏? 我知道ruby中的符号是用来替代字符串节省内存空间 可是这个情形下依然不知道是什么意思啊 求大神解答
<p class="row collapse">
<p class="small-3 columns">
<%= f.label :name, class: "right inline" %>
</p>
<p class="small-9 columns"><%= f.text_field :name %></p>
</p>
<p class="row collapse">
<p class="small-3 columns">
<%= f.label :price, class: "right inline", title: "Price in USD", data: {tooltip: true} %>
</p>
<p class="small-9 columns"><%= f.text_field :price %></p>
</p>
<p class="row collapse">
<p class="small-9 small-offset-3 columns"><%= f.submit %></p>
</p>
还有在erb中也出现了ruby符号的奇怪用法 f.label :price 是要用:price 去代替f.label吗? 急求大神解答 纠结了几天了
大家讲道理2017-04-21 11:18:35
루비에서
:xxx는 기호를 나타냅니다.
기호 를 문자열 으로 이해할 수 있지만 정확히 동일하지는 않습니다.
기호는 변경되지 않습니다.
우선, Ruby의 모든 것은 객체이며, 각 객체는 메모리 내 물리적 위치를 나타내는 고유한 object_id를 갖습니다(그러나 이 객체에 직접 액세스할 수는 없습니다).
그러나 정수와 같은 몇 가지 예외가 있습니다. 동일한 정수의 object_id가 동일한 것을 알 수 있습니다. 이는 Ruby의 리소스 절약 방식입니다.
으아아아Ruby의 구현입니다. 기호는 상수와 동일합니다. 즉, 동일한 object_id를 사용합니다. 즉, 메모리에서의 위치가 동일합니다. (상수의 object_id는 상수의 값을 직접 반영하며, 처리 중에도 특별하게 취급됩니다.)
위의 코드는 다음과 같습니다. Ruby에서 함수 호출에 대한 괄호는 생략할 수 있습니다. 예를 들어, f.label :price는 실제로 f.label( :price)입니다. 동시에 해시의 {}도 생략할 수 있습니다. xxx=>xxx,xxx=>xxx 또는 xxx:xxx,xxx:xxx입니다. xxx, ...}
:가격은 매개변수 중 하나일 뿐입니다.
그래서 등장했습니다
으아아아다음과 같이 코드를 작성하세요. 그가 의미하는 바는
으아아아이런 방식으로 그는 형식 f에 라벨을 생성합니다. 이름은 name이고 html 태그의 클래스는 "right inline"입니다.
으아아아do|x|...end에는 특별한 의미가 없습니다. {|x|}처럼 블록을 나타낼 뿐입니다. 이 코드에는 반복이 있으며 실제로는 다음과 유사합니다.
으아아아물론 이것도 합법적입니다.
으아아아그러면 괄호를 생략할 수 있어서 위와 같이 됩니다.
Ruby에서 이러한 기능을 구현하려면 다음이 필요합니다.
으아아아반복자의 더 구체적인 사용법은 다음을 참조하세요: http://blog.csdn.net/classwang/article/details/4692856