Я пытаюсь создать сложную форму.Поля также должны добавлять данные, полученные с запросами, в другие таблицы.
Вот что я пытаюсь сделать.
Форма Rad_check состоит из имени пользователя и пароля ... Когда пользователь регистрируется, вводя имя пользователя и пароль, таблица Rad_cheks должна состоять из других записей на обороте.Я был в состоянии сделать некоторые из модели Radcheck.Однако я хочу условно запросить столбец tenant_id в таблице Nas и вставить его в таблицу Rad_checks.Я фактически подготовил запрос для этого, но я не знаю, как его использовать.
Na.select (: tenant_id) .where (Na.arel_table [: realipaddr] .eq ('форма реальная)ip будет '))
На самом деле, я использую Gem-файл Milia.Тем не менее, будет несколько более публичная форма ... созданный мною запрос должен прийти способом, а не IP-адресом запроса.REMOTE_IP код.Это означает, что фактический IP-адрес пользователя представляет собой информацию tenant_id, равную IP-адресу в таблице NAS.
При сохранении формы Rad_chek я хочу запросить фактический IP-адрес пользователя в таблице Nas и добавитьномер tenant_id равных данных в таблице Rad_cheks.Как я могу это сделать?
Помогите мне!Пожалуйста
ТАБЛИЦА
class CreateRadChecks < ActiveRecord::Migration[5.2]
def change
create_table :rad_checks do |t|
t.integer :tenant_id
t.string :username
t.string :password
t.string :attribu
t.string :op
t.timestamps
end
end
end
ФОРМА
<%= form_with(model: rad_check, local: true) do |form| %>
<% if rad_check.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(rad_check.errors.count, "error") %> prohibited this rad_check from being saved:</h2>
<ul>
<% rad_check.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= form.label :username %>
<%= form.text_field :username %>
</div>
<div class="field">
<%= form.label :password %>
<%= form.text_field :password %>
</div>
<div class="actions">
<%= form.submit %>
</div>
<% end %>
МОДЕЛЬ
class RadCheck < ApplicationRecord
has_one :rad_user_group, dependent: :destroy
after_initialize :add_rad_user_group
before_save :set_radcheck
def add_rad_user_group
self.rad_user_group ||= RadUserGroup.new if self.new_record?
end
def set_radcheck
self.rad_user_group.username = username
self.op = ":="
self.attribu = "Cleartext-Password"
end
end
таблица rad_user_group
class CreateRadUserGroups < ActiveRecord::Migration[5.2]
def change
create_table :rad_user_groups do |t|
t.integer :tenant_id
t.string :username
t.string :groupname
t.references :rad_check, foreign_key: true
t.timestamps
end
end
end
таблица nas
class CreateNas < ActiveRecord::Migration[5.2]
def change
create_table :nas do |t|
t.integer :tenant_id
t.string :nasname
t.string :realipaddr
t.boolean :active
end
end
end