[英]rails form - checkboxes, FK and datetime -> how to store those attributes in the db?
(導軌2.2.2)
我有2個模型,用戶和訂閱。 每個用戶可以擁有一個或多個訂閱(=高級服務)。 在屬性下方:
這些課程:
class User < ActiveRecord::Base
..
has_many :subscriptions, :dependent => :destroy
..
end
class Subscription < ActiveRecord::Base
belongs_to :user, :foreign_key => :user_id
end
現在,我要制作UI部分,現有用戶可以在其帳戶中訂閱高級服務。 因此,我想制作第一個簡單版本,用戶可以通過單擊復選框進行訂閱。 這就是我到目前為止所得到的
<div class = 'wrapper'>
<%= render :partial => "my_account_leftbar" %>
<% form_for @subscription, :url => subscribe_user_path(current_user) do |f| %>
<div class="field">
<%= (f.check_box :type?) %> <!-- add '?'after the symbol, source: https://github.com/justinfrench/formtastic/issues/269 -->
</div>
<div class="actions">
<%= f.submit "Subscribe", :class => "button mr8" %>
</div>
<% end %>
</div>
問題:
剛用完我的初學者Rails知識,任何幫助都非常感激...
“類型”是ruby on rails保留字,僅在使用“單表繼承”時才應使用。 您應該將列名重命名為其他名稱。
我也可以解決其他問題2和3,將其包裝起來:
插入記錄:如Wahaj的回答所述,將“類型”列重命名為“ subscription_type”,這很有幫助。 我創建了一個單獨的遷移,如下所述: 如何在Ruby on Rails遷移中重命名數據庫列?
存儲FK:在控制器中更新了動作。 不只是寫作
@subscription = Subscription.new(params [:subscription])
我編寫了以下方法來創建“用戶的訂閱”
@subscription = current_user.subscriptions.build(params [:subscription])
存儲“ started_at”:向控制器添加了一個方法:
@ subscription.update_attributes(:started_at => Time.zone.now)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.