Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
simple_controller
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open-source
simple_controller
Commits
65e80524
Commit
65e80524
authored
Feb 09, 2022
by
liyijie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: ransack 区分 mongoid 和 active_record
parent
77b53086
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
5 deletions
+14
-5
base_controller.rb
lib/simple_controller/base_controller.rb
+14
-5
No files found.
lib/simple_controller/base_controller.rb
View file @
65e80524
...
@@ -209,8 +209,8 @@ class SimpleController::BaseController < ::InheritedResources::Base
...
@@ -209,8 +209,8 @@ class SimpleController::BaseController < ::InheritedResources::Base
end
end
end
end
association
=
association
.
ransack
(
params
[
:q
]).
result
unless
self
.
class
.
instance_variable_get
(
:@ransack_off
)
||
params
[
:q
].
blank?
association
=
ransack_association
(
association
,
params
[
:q
])
unless
self
.
class
.
instance_variable_get
(
:@ransack_off
)
||
params
[
:q
].
blank?
association
=
association
.
ransack
(
params
[
:sub_q
]).
result
unless
self
.
class
.
instance_variable_get
(
:@ransack_off
)
||
params
[
:sub_q
].
blank?
association
=
ransack_association
(
association
,
params
[
:sub_q
])
unless
self
.
class
.
instance_variable_get
(
:@ransack_off
)
||
params
[
:sub_q
].
blank?
association
=
association
.
distinct
unless
self
.
class
.
instance_variable_get
(
:@distinct_off
)
||
!
association
.
respond_to?
(
:distinct
)
||
!
active_record?
association
=
association
.
distinct
unless
self
.
class
.
instance_variable_get
(
:@distinct_off
)
||
!
association
.
respond_to?
(
:distinct
)
||
!
active_record?
association
=
association
.
paginate
(
page:
params
[
:page
],
per_page:
params
[
:per_page
])
unless
self
.
class
.
instance_variable_get
(
:@paginate_off
)
association
=
association
.
paginate
(
page:
params
[
:page
],
per_page:
params
[
:per_page
])
unless
self
.
class
.
instance_variable_get
(
:@paginate_off
)
association
association
...
@@ -239,7 +239,7 @@ class SimpleController::BaseController < ::InheritedResources::Base
...
@@ -239,7 +239,7 @@ class SimpleController::BaseController < ::InheritedResources::Base
else
else
association
=
policy_association_chain
association
=
policy_association_chain
end
end
association
=
association
.
ransack
(
params
[
:q
].
except
(
:scopes
)).
result
association
=
ransack_association
(
association
,
params
[
:q
].
except
(
:scopes
))
end
end
end
end
...
@@ -275,11 +275,11 @@ class SimpleController::BaseController < ::InheritedResources::Base
...
@@ -275,11 +275,11 @@ class SimpleController::BaseController < ::InheritedResources::Base
unless
self
.
class
.
instance_variable_get
(
:@ransack_off
)
||
params
[
:sub_q
].
blank?
unless
self
.
class
.
instance_variable_get
(
:@ransack_off
)
||
params
[
:sub_q
].
blank?
association
=
Array
(
params
[
:sub_q
][
:scopes
]).
reduce
(
association
)
{
|
_association
,
_scope
|
_association
.
send
(
_scope
)
}
if
params
[
:sub_q
][
:scopes
].
present?
association
=
Array
(
params
[
:sub_q
][
:scopes
]).
reduce
(
association
)
{
|
_association
,
_scope
|
_association
.
send
(
_scope
)
}
if
params
[
:sub_q
][
:scopes
].
present?
association
=
association
.
ransack
(
params
[
:sub_q
].
except
(
:scopes
)).
result
association
=
ransack_association
(
association
,
params
[
:sub_q
].
except
(
:scopes
))
end
end
unless
self
.
class
.
instance_variable_get
(
:@ransack_off
)
||
params
[
:q
].
blank?
unless
self
.
class
.
instance_variable_get
(
:@ransack_off
)
||
params
[
:q
].
blank?
association
=
Array
(
params
[
:q
][
:scopes
]).
reduce
(
association
)
{
|
_association
,
_scope
|
_association
.
send
(
_scope
)
}
if
params
[
:q
][
:scopes
].
present?
association
=
Array
(
params
[
:q
][
:scopes
]).
reduce
(
association
)
{
|
_association
,
_scope
|
_association
.
send
(
_scope
)
}
if
params
[
:q
][
:scopes
].
present?
association
=
association
.
ransack
(
params
[
:q
].
except
(
:scopes
)).
result
association
=
ransack_association
(
association
,
params
[
:q
].
except
(
:scopes
))
end
end
association
=
association
.
distinct
unless
self
.
class
.
instance_variable_get
(
:@distinct_off
)
||
!
association
.
respond_to?
(
:distinct
)
||
!
active_record?
association
=
association
.
distinct
unless
self
.
class
.
instance_variable_get
(
:@distinct_off
)
||
!
association
.
respond_to?
(
:distinct
)
||
!
active_record?
association
association
...
@@ -323,4 +323,13 @@ class SimpleController::BaseController < ::InheritedResources::Base
...
@@ -323,4 +323,13 @@ class SimpleController::BaseController < ::InheritedResources::Base
def
active_record?
def
active_record?
self
.
class
.
resource_class
<
ActiveRecord
::
Base
self
.
class
.
resource_class
<
ActiveRecord
::
Base
end
end
def
ransack_association
(
association
,
query_params
)
if
active_record?
association
.
ransack
(
query_params
).
result
else
selector
=
RansackMongo
::
Query
.
parse
(
query_params
)
association
.
where
(
selector
)
end
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment