我想,你應該就是把 params
直接印在 view 上面,所以得到 permitted: false
是很正常的 :)
關鍵字:「Strong Parameters」
最近被別的事情卡住,沒能更新,請待小的我把手邊的事處理完,再來更新到 Rails 6 版本 :)
是的,在比較舊的版本,是有區別的 https://gitbook.tw/chapters/using-git/add-to-git.html
但在 Git 2.x 版之後就一樣了
不過這本目前還是 Rails 5,等 Rails 6 出來再找時間更新一下
已經有出版社正在洽談、製作簡中版本,估計不久後就會有了,感謝支持 :)
我自己也還在用 octopress ;)
http://railsbook.tw/chapters/07-ruby-basic-3.html
也許這篇勉強算得上跟你這問題有點關係,供你參考 :)
花點時間了解 Ruby 是怎麼回事,對 Rails 學習是滿有幫助的喔
我自己的學習方式是先用一開始的配置,然後再去參考別人的配置一行一行的加上去,看看效果是什麼。覺得對自己有幫助就留下來,覺得沒用就刪掉。
https://ruby-china.org/topics/34171 最近又多了這個 :)
Hash 是 key 跟 value 的配對組合,在 Ruby 如果想要取用 Hash 裡的 value 必須要使用正確的 key 才能取用,拿不正確的 key 是拿不到東西的。hash["key"]
跟 hash[:key]
是不同的 key,前面那個 key 是 String,後面那個 key 是 Symbol。
關於 Ruby 的 Hash,可參考拙作:
http://railsbook.tw/chapters/06-ruby-basic-2.html#hash_class
如果想了解什麼是 Symbol,可參考:
http://railsbook.tw/chapters/06-ruby-basic-2.html#symbol_class
哪裡,大家客氣了
可惜跟日本 RubyKaigi 接得太近,不然也許可以去分享個 Elixir 方面的主題 :)
哈哈,我不是日本人,所以姓氏只有第一個字,至於「老師」二字就可以不用了 (但我去日本出差的時候都會自介 私は 高見 と申します 就是了)
是的,而且我覺得 c9 功能上比 codeanywhere 來得優秀,但缺點就是註冊的時候需要先輸入信用卡號,這點對大部份的人可能不是問題,但我在學校帶課程的時候,常會遇到大學生沒有信用卡的問題而無法使用。倒是 codeanywhere 就沒這困擾了 :)
有 Mac 電腦是最好,但沒有的話也不會強求。Windows 用戶通常會請他們直接轉用像 https://codeanywhere.com/ 或 https://c9.io/ 之類的環境,就以學習上來說沒有什麼太大的問題。
用 Docker 或虛擬機也是個選項,但對新手來說反而可能造成「為了學 Ruby/Rails 反而得先學會 Docker」的額外負擔
另外,我之前個人對 Rails Installer 的印象停留在「光是 bundle install 就會報錯」的階段,最近試了一下好像沒這問題了,最近有同學上課是就是使用 Rails Installer,似乎沒出什麼問題。
供您參考 :)
對大家有幫助就好 :)
如果你不會在測試的過程中變動你的字串的話,可在文件的最前面加上一行
# frozen_string_literal: true
這一行讓整份文件的字串都變成 immutable (設定成 freeze 狀態),可加快一點點點點點點點點的速度 :)
一、Ruby 的方法呼叫,常常會適時的省略小括號:
例如
def say_hi_to(name)
puts "hi, #{name}"
end
say_hi_to("eddie")
但我們通常會寫成:
say_hi_to "eddie"
把小括號省略了,這在 Ruby 是很常見的寫法
二、Ruby 並沒有「屬性」(property/attribute) 這樣的東西:
class Girl
def initialize(age)
@age = age
end
end
little_girl = Girl.new(25)
雖然這個 little_girl 看起來好像有 @age
變數,但不代表它是可以直接存取的屬性。硬是要用 little_girl.age
問她年紀,或是要用 little_girl.age = 18
設定她的年紀,她都會賞你一巴掌,給你錯誤訊息的。
little_girl.age
你以為是讀取 little_girl 上的 age 屬性,但事實上是 little_girl.age()
方法,只是小括號被省略了。little_girl.age=18
你以為是設定 little_girl 的 age 屬性,但事實上是 little_girl.age=(18)
方法,只是小括號被省略了。
說穿了 Ruby 一堆東西都是方法!
你以為 1 + 2 是簡單的數學運算嗎?其實它是 1.+(2)
,它是對數字物件 1 送了一個 +
的訊息,並且把數字物件 2 當做參數傳給它
好啦,即然知道它們都是方法,那要怎麼定義它們呢?
class Girl
def initialize(age)
@age = age
end
# 因為它會取得 instance var,故又稱之 getter
def age
return @age # 這邊的 return 通常也會省略
end
# 因為它會設定 instance var,故又稱之 setter
def age=(new_age)
@age = new_age
end
end
請把等號當做一般的字母看待,等號可以是方法名字的一部份
這個方法就叫做 age=
,要呼叫它就是用 age=(18)
,沒錯,就是連等號一起呼叫。
所以,標準形態應該長這樣:
little_girl.age=(18)
但因為上述第一項,Ruby 可以省略小括號,所以可寫成:
little_girl.age=18
然後,Ruby 又有幫忙加了一些語法糖衣,讓你在中間加一些空白字元也是可以的:
little_girl.age = 18
最後就會讓你看起來像是在設定 age 屬性了。
如果你懶得寫這樣的 getter/setter,可用 attr_reader
、attr_writer
或 attr_accessor
來替你產生 getter/setter。
不知道這樣回答有沒有讓樓主清楚一些 :)
若有錯再請不吝指正
@drine 1 == x 一來可以避免寫出 1 = x (不小心少了一個等號) 的問題外,再看看以下這個有點極端的例子:
class Demo
def ==(other)
true
end
end
obj = Demo.new
p obj == false # true
p false == obj # false
雖然平常沒事不會這樣搞,不過上面這樣的寫法的確會造成交換過來寫會得到不同的結果 :)
剪接後製中,請再稍候一些時間 :)
http://blog.eddie.com.tw/2013/06/29/about-hhkb-pro2/
小的我也來偷偷曬一下自己的使用心得 :)
http://wiki.fnil.net/images/3/3b/Ruby_object_model.png 其實這張圖片看懂,ruby 的 object model 就比較清楚了 :)
支持 :)
指的是"Ruby"的 benchmark 跟 profile 嗎?
要寫出比較有自信的代碼,我覺得"寫測試"是一個不錯的選擇 :)
如果你有安裝 surround,而且有裝 rails.vim 的話: