在一个创建中具有两个不同布局/视图的两个记录

时间:2011-10-18 06:32:31

标签: ruby-on-rails ruby-on-rails-3.1

好的,这是我的问题: 我在半径系统中有一个表格。要启用热点用户,我需要在此表中使用两个不同的记录。 该记录包含字段user,attr,op,value 第一条记录:属性必须是密码(此记录仅用于此处的密码),值是密码本身。 第二条记录:属性必须类似于Max-Allowed-Session,值是一个以秒为单位的整数。 所以我将它作为嵌套属性添加到我的控制器客户端。在新的我这样做:

def new
@client = Client.new
2.times do
  radcheck = @client.radchecks.build
end`
respond to........
end`

好的,在我看来,我现在有这个:

f.fields for :radchecks do |rcbuilder|
<p><%= rcbuilder.label :username %><br /><%= rcbuilder.text_field :username %>
for all fields .....
end

在我的控制器中我构建了两个radcheck,因此这部分显示了两次。 这是状态,但我希望在我的网站上有这样的东西

<first occurence of that form>
<%= rcbuilder.hidden_field :attr, :value => "password" %>
<%= rcbuilder.hidden_field :value, :value => @generated_password %>
<end first occurence>
<second occurence of that form>
<%= rcbuilder.hidden_field :attr, :value => "Max-Allowed-Session" %>
<%= rcbuilder.label :value, 'Time in hours' %><%= rcbuilder.text_field :value %>
<end second occurence>

Somone有一个想法意识到这一点。也许我必须自己编写索引字段,但我怎样才能实现呢? 谢谢你的帮助....

1 个答案:

答案 0 :(得分:0)

假设您在客户端模型中使用accepts_nested_attributes_for:radchecks。

<% index=1 %>
f.fields for :radchecks do |rcbuilder|
  <%= render :partial=>'radcheck_fields', :locals=>{:rcbuilder=>rcbuilder, :index=>index}%>
<% index+=1 %>
end

接下来使用以下代码创建名为radcheck_fields.html.erb的部分。

<% if index.eql?(1) %>
  <%= rcbuilder.hidden_field :attr, :value => "password" %>
  <%= rcbuilder.hidden_field :value, :value => @generated_password %>
<% else %>
  <%= rcbuilder.hidden_field :attr, :value => "Max-Allowed-Session" %>
  <%= rcbuilder.label :value, 'Time in hours' %><%= rcbuilder.text_field :value %>
<% end %>