Две записи с двумя разными макетами / видами в одном создании - PullRequest
1 голос
/ 18 октября 2011

Хорошо, вот моя проблема: у меня есть таблица в радиус-системе. для включения пользователя точки доступа мне нужны две разные записи в этой таблице. запись имеет поля 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

В моем контроллере я построил две контрольные проверки, поэтому эта часть показана два раза. Это статус, но я хочу, чтобы на моем сайте было что-то подобное

<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>

У Сомоне есть идея, чтобы понять это. Может быть, мне нужно написать индексированные поля самостоятельно, но как мне этого добиться? спасибо за помощь ....

1 Ответ

0 голосов
/ 18 октября 2011

Предполагается, что вы используете 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 %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...