Skip to content

Commit a52cd6b

Browse files
committed
Fixes #162 - Undefined method 'id' for False class error in view partial
1 parent 850832f commit a52cd6b

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

app/controllers/lit/localization_keys_controller.rb

+5-8
Original file line numberDiff line numberDiff line change
@@ -119,18 +119,15 @@ def grouped_localizations
119119
def localization_for(locale, localization_key)
120120
@_localization_for ||= {}
121121
key = [locale, localization_key]
122-
ret = @_localization_for[key]
123-
if ret == false
124-
nil
125-
elsif ret.nil?
122+
if @_localization_for.key?(key)
123+
@_localization_for[key]
124+
else
126125
ret = grouped_localizations[localization_key][locale]
127126
unless ret
128127
Lit.init.cache.refresh_key("#{locale}.#{localization_key.localization_key}")
129-
ret = localization_key.localizations.where(locale_id: Lit.init.cache.find_locale(locale).id).first
128+
ret = localization_key.localizations.find_by(locale_id: Lit.init.cache.find_locale(locale).id)
130129
end
131-
@_localization_for[key] = ret ? ret : false
132-
else
133-
ret
130+
@_localization_for[key] = ret ? ret : nil
134131
end
135132
end
136133
helper_method :localization_for

app/views/lit/localization_keys/_localizations_list.html.erb

+7-3
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,13 @@
3939
<%- available_locales.each do |locale| %>
4040
<%- localization = localization_for(locale, lk) %>
4141
<tr>
42-
<td class="localization_row" data-id="<%= localization.id%>" data-edit="<%= edit_localization_key_localization_path(lk, localization, format: :js) %>" data-editing=0 data-content="">
43-
<%= render partial: 'localization_row', locals: {localization: Lit.init.cache["#{locale}.#{lk.localization_key}"]} %>
44-
</td>
42+
<% if localization %>
43+
<td class="localization_row" data-id="<%= localization.id%>" data-edit="<%= edit_localization_key_localization_path(lk, localization, format: :js) %>" data-editing=0 data-content="">
44+
<%= render partial: 'localization_row', locals: {localization: Lit.init.cache["#{locale}.#{lk.localization_key}"]} %>
45+
</td>
46+
<% else %>
47+
<td class="localization_row"><em>missing</em></td>
48+
<% end %>
4549
<td class="locale_row text-center">
4650
<%= EmojiFlag.new(locale) %>
4751
<%= locale %>

lib/lit/cache.rb

+1
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ def localization_keys
215215

216216
def find_localization(locale, key_without_locale, value: nil, force_array: false, update_value: false, default_fallback: false)
217217
return nil if value.is_a?(Hash)
218+
218219
full_key = "#{locale}.#{key_without_locale}"
219220
ActiveRecord::Base.transaction do
220221
localization_key = find_localization_key(key_without_locale)

0 commit comments

Comments
 (0)