Rails ActiveAdmin.如何设置默认值?

Sey*_*aux 13 ruby forms rubygems ruby-on-rails activeadmin

我有这样的代码:

ActiveAdmin.register Post do

form do |f|
  f.inputs "Post Details" do
    f.input :title
    f.input :body
    f.input :published_at, :as => DateTime.now
  end
  f.actions
end
Run Code Online (Sandbox Code Playgroud)

我希望:published_at默认情况下将字段(t.datetime)设置为当前日期和时间.我的例子不起作用.我怎样才能做到这一点?

Sey*_*aux 25

是的.我自己找到了答案.

ActiveAdmin.register Post do

form do |f|
  f.object.published_at = DateTime.now
  f.inputs "Post Details" do
    f.input :title
    f.input :body
    f.input :published_at
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,表单用于编辑现有记录以及创建新记录,因此最好使用条件赋值以避免意外覆盖`published_at`的现有值 - 即.`f.object.published_at || = DateTime.now` (6认同)
  • `f.object.published_at = DateTime.now 除非 f.object.persisted?` assings 默认值仅适用于新对象。它不会覆盖现有对象的空值。 (2认同)

Fla*_*ine 6

你可以尝试这样的事情:

<%= f.input :published_at, input_html: {value: "#{Time.now}"} %>
Run Code Online (Sandbox Code Playgroud)