Skip to content

Commit 2926ed6

Browse files
committed
Update attributes guard documentation with attribute_name parameter
1 parent 5e0abae commit 2926ed6

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

_site/guides/concepts/resources.html

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,12 +231,17 @@ <h4>
231231
<span class="k">end</span></code></pre></figure>
232232

233233
<p>When guarding the <code class="highlighter-rouge">:readable</code> flag, the method can optionally accept the
234-
model instance being serialized as an argument:</p>
234+
model instance and the of the attribute being serialized as arguments:</p>
235235

236236
<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="n">attribute</span> <span class="ss">:name</span><span class="p">,</span> <span class="ss">:string</span><span class="p">,</span> <span class="ss">readable: :allowed?</span>
237+
<span class="n">attribute</span> <span class="ss">:age</span><span class="p">,</span> <span class="ss">:integer</span><span class="p">,</span> <span class="ss">readable: :attribute_allowed?</span>
237238

238239
<span class="k">def</span> <span class="nf">allowed?</span><span class="p">(</span><span class="n">model_instance</span><span class="p">)</span>
239240
<span class="n">model_instance</span><span class="p">.</span><span class="nf">internal</span> <span class="o">==</span> <span class="kp">false</span>
241+
<span class="k">end</span>
242+
243+
<span class="k">def</span> <span class="nf">attribute_allowed?</span><span class="p">(</span><span class="n">model_instance</span><span class="p">,</span> <span class="n">attribute_name</span><span class="p">)</span>
244+
<span class="no">PolicyChecker</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="n">model_instance</span><span class="p">).</span><span class="nf">attribute_readable?</span><span class="p">(</span><span class="n">attribute_name</span><span class="p">)</span>
240245
<span class="k">end</span></code></pre></figure>
241246

242247
<a class="anchor" id="default-behavior" />
@@ -1337,7 +1342,7 @@ <h4>
13371342

13381343
<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">class</span> <span class="nc">Employee</span> <span class="o">&lt;</span> <span class="no">ApplicationRecord</span>
13391344
<span class="n">has_many</span> <span class="ss">:team_memberships</span>
1340-
<span class="n">has_many</span> <span class="ss">:teams</span><span class="p">,</span> <span class="n">through</span> <span class="ss">:team_memberships</span>
1345+
<span class="n">has_many</span> <span class="ss">:teams</span><span class="p">,</span> <span class="ss">through: :team_memberships</span>
13411346
<span class="k">end</span>
13421347

13431348
<span class="k">class</span> <span class="nc">TeamMembership</span> <span class="o">&lt;</span> <span class="no">ApplicationRecord</span>

guides/concepts/resources.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,19 @@ end
113113
{% endhighlight %}
114114

115115
When guarding the `:readable` flag, the method can optionally accept the
116-
model instance being serialized as an argument:
116+
model instance and the of the attribute being serialized as arguments:
117117

118118
{% highlight ruby %}
119119
attribute :name, :string, readable: :allowed?
120+
attribute :age, :integer, readable: :attribute_allowed?
120121

121122
def allowed?(model_instance)
122123
model_instance.internal == false
123124
end
125+
126+
def attribute_allowed?(model_instance, attribute_name)
127+
PolicyChecker.new(model_instance).attribute_readable?(attribute_name)
128+
end
124129
{% endhighlight %}
125130

126131
{% include h.html tag="h4" text="2.2 Default Behavior" a="default-behavior" %}

0 commit comments

Comments
 (0)