【问题标题】:Rails 3- Active_admin - Show field in the new page but not in the editRails 3- Active_admin - 在新页面中显示字段但不在编辑中
【发布时间】:2011-12-30 17:45:09
【问题描述】:
我有一个名为 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?函数我的所有字段都从编辑页面中消失。
有什么想法吗?
【问题讨论】:
标签:
ruby
ruby-on-rails-3
formtastic
activeadmin
【解决方案2】:
对于像我这样的任何人,稍后会出现: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
现在,只有当我创建新用户时才会显示包含密码和密码确认字段的字段集,而不是在我编辑用户时显示。新记录? Tony 最初使用的函数可能也可以正常工作,因为他说当他尝试它时,他的字段消失了,这可能是由于这个问题。
顺便说一句,我会评论 Meskallito 的原始答案,但我没有足够的代表。 :-)
【解决方案3】:
我用过:
if f.object.id.nil?
f.input :password
end
【解决方案4】:
试试这个:
if f.object.new_record?
f.input :password
f.input :password_confirmation
end