【发布时间】:2018-09-19 14:20:13
【问题描述】:
我正在尝试设计一个复杂的表单。字段还需要将我通过查询收到的数据添加到其他表。
这就是我想要做的。
Rad_check 表格由用户名和密码组成... 当用户通过输入用户名和密码进行注册时,Rad_cheks 表后面必须包含其他记录。我能够做一些 Radcheck 模型。但是,我想有条件地查询 Nas 表中的tenant_id 列并将其插入到 Rad_checks 表中。我实际上已经为此准备了一个查询,但我不知道如何使用它。
Na.select(:tenant_id).where(Na.arel_table[:realipaddr].eq('form's real ip will be'))
实际上,我正在使用 Milia gem 文件。但是,将会有一个更公开的形式......我创建的查询必须以某种方式出现,而不是请求的 IP 地址。 REMOTE_IP 代码。这意味着用户的实际IP地址是tenant_id信息,等于NAS表中的IP地址。
保存Rad_chek表格时,我想在Nas表中查询用户的实际IP地址,并将相等数据的tenant_id号添加到Rad_chek表中。我该怎么做?
帮帮我!请
表格
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
【问题讨论】:
-
问题是什么?
-
Rad_check 表格由用户名和密码组成... 当用户输入用户名和密码进行注册时,Rad_cheks 表后面必须包含其他记录。我能够做一些 Radcheck 模型。但是,我想有条件地查询 Nas 表中的tenant_id 列并将其插入到 Rad_checks 表中。我实际上已经为此准备了一个查询,但我不知道如何使用它。 Na.select (:tenant_id) .name (Na.arel_table [: realipaddr] .eq ('formun gerçek ipi' olacaktır)) 如何在保存表单时将此查询添加到 teanat_id 分支?
-
保存Rad_chek表格时,我想在Nas表中查询用户的实际IP地址,并将相等数据的tenant_id号添加到Rad_chek表中。我该怎么做?
-
您应该添加发生这种情况的控制器操作以及表单提交的参数。
-
如何向这样的查询添加参数。可以举个例子吗?
标签: ruby-on-rails ruby-on-rails-5 multi-tenant