Rails 3- Active_admin - 在新页面中显示字段,但不在编辑中显示

时间:2011-12-30 17:45:10

标签: ruby ruby-on-rails-3 formtastic activeadmin

我有一个名为user的模型。我想在创建页面上显示密码字段,而不是编辑密码字段。

ActiveAdmin.register User do
    form do |f|
       f.inputs "User Details" do
          f.input :first_name
          f.input :last_name
          f.input :email
          if f.object.new_record?
              f.input :password
          end

       end
    f.buttons
    end
 end

这是我尝试但使用.new_record?功能我的所有字段都从编辑页面中消失。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

解决方案是使用部分。

答案 1 :(得分:1)

对于像我这样的人,稍后出现:Meskallito提供的答案有效,但您可能需要使用字段集来适应ActiveAdmin / Formtastic古怪,有时候当您插入逻辑时出现,这取决于您的表单形式结构化。例如,当我实现他的答案时,我这样做了:

form do |f|
  f.inputs 'Account' do
    f.inputs "Credentials" do
      f.input :email,                   :label => "Email Address"
    end
    if f.object.id.nil?
      f.inputs "Password" do
        f.input :password,              :label => "Password"
        f.input :password_confirmation, :label => "Password Confirmation"
      end
    end
    ...
  end
end

现在,只有在我创建新用户时才显示带有password和password_confirmation字段的字段集,而不是在我编辑用户时。 new_record? Tony最初使用的功能可能也有效,因为他说当他尝试时他的字段消失了,这可能是由于这个问题所致。

顺便说一下,我刚刚评论过Meskallito的原始答案,但我没有足够的代表。 : - )

答案 2 :(得分:0)

我用过:

if f.object.id.nil?
    f.input :password
end

答案 3 :(得分:0)

试试这个:

  if f.object.new_record?
    f.input :password
    f.input :password_confirmation
  end