2011-10-16 70 views
0

在我的投票系統中,我有「expire_at」的input tag。我想要做的是用date.the日期爲動態填充input tag 7天后。如何填充「輸入」標籤的默認值動態

例如,如果我對「expire_at」不做任何處理,它應該是2011-10-23作爲默認值。(2011-10-16 with 7days later),如何?

回答

1

如果7天是應用無處不在,把它放在你的模型中的默認設置:

在你的模型:

class MyModel < ActiveRecord::Base 

    def expires_at 
    # I'm not sure if this works, if not 
    # wrap it in a if-clause like: 
    # read_attribute(:expires_at).present? ? read_attribute(:expires_at) : 7.days.from_now 

    read_attribute(:expires_at) || 7.days.from_now 
    end 
end 

在你看來:

<%= f.text_field :expires_at, @vote.expires_at.strftime('%Y-%m-%d') %> 

如果只有一種特定形式,請在磚匠的回答中進行: (無需修改模式當然L)

在你看來:

<%= f.text_field :expires_at, :value => (@vote.expires_at.present? ? @vote.expires_at : 7.days.from_now).strftime('%Y-%m-%d') %> 
1
<%= f.text_field :expires_at, :value => @vote.new_record? ? Time.zone.now + 7.days : @vote.expires_at %> 
+1

我不會用''new_record因爲如果驗證失敗,用戶的輸入將被覆蓋?所以這是一個修改後的版本: '<%= f.text_field:expires_at,:value =>(@ vote.expires_at.present??@ vote.expires_at:7.days.from_now).strftime('%Y-% m-%d')%>' – sled

+0

好點的雪橇。謝謝。發表一個新的答案,你的更好。 – bricker