我有一个名为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?功能我的所有字段都从编辑页面中消失。
有什么想法吗?
答案 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