只能在 views 裡寫 js, 若不想這麼作,gon 很適合。
gazay/gon http://j.mp/JeszBk
我是 @hSATAC 本人 我使用 github 登入 貌似是 http://ruby-china.org/topics/2624 這篇九樓 @huacnlee 幫我修改帳號時出錯了 我現在登右上角顯示的是 @cactis
https://github.com/huacnlee/ruby-china/blob/master/Gemfile
# 用户系统
gem 'devise', '1.5.2'
Ruby China 也是用 devise。
#11 楼 @jhjguxin order.new 時,即使 @order 裡有 user_id 的值,但透過表單回傳時,若沒有加上該 user_id(一般皆設為隱藏),submit 的 params[:order] 裡仍然會沒有 user_id 字段。
由於 order 這類操作一般皆為當下用戶操作,所以其實可以在 orders#create 直接賦值就好。也就是
current_user.orders.crate(params[:order])
# 這行指令就是以 "User Model 添加了 has_many :orders" 的設定為前提
作的事。
這種方式另有一個安全上的優點:(對比於用 form 裡的 = f.hidden_field :user_id) 我們是否允許用戶任意指定訂單為他人所建?若不允許的話,直接取得 current_user (就是當下登入的帳號) 並用它產生訂單,那 user_id 就一定會是 current_user.id,而不能是別的。
關於 current_user 可參考 devise。
上面數據庫的設計及 model 間的關聯設定是對的。只缺在存入資料時,要寫入是誰下的訂單。這是意義問題,不是結構問題。如上所說,要讓 user_id 有值,方法很多。但總要有地方去放入那個值。
以上 5/6/7 樓是我寫的。(@hSATAC 不是我的帳號。我已去站上反饋提報這個問題。)