在具有简单形式的属性 erb 中进行插值 (Rails)
Interpolation in an attribute erb with simple form (Rails)
我在 Rails 上与 Ruby 合作,我有一个简单的形式 gem 是这样的:
Code problem
<%= simple_form_for [:admins, @calendar_entry],
url: toggle_visibility_admins_calendar_entry_path(calendar_entry),
method: :patch,
remote: true do |f| %>
<%= f.input_field :visible,
id: 'switch-sm-#{calendar_entry.id.to_s}',
class: 'switch',
type: 'checkbox' %>
<% end %>
并且它在 HTML 中得到以下输出(检查输入 中的 id 属性):
<form novalidate="novalidate" class="simple_form new_calendar_entry" id="new_calendar_entry" action="/admins/calendar_entries/35/toggle_visibility" accept-charset="UTF-8" data-remote="true" method="post">
<input id="switch-sm-#{calendar_entry.id.to_s}" class="boolean optional switch" type="checkbox" value="1" name="calendar_entry[visible]">
</form>
忽略remote: true
和简单形式的所有属性,真正的问题是id属性[=32=中的插值 ], 由于某种原因我没有得到变量的数据,但是,我可以这样做:
Bad code by standards
<%= simple_form_for [:admins, @calendar_entry],
url: toggle_visibility_admins_calendar_entry_path(calendar_entry),
method: :patch,
remote: true do |f| %>
<%= f.input_field :visible,
id: 'switch-sm-'+calendar_entry.id.to_s,
class: 'switch',
type: 'checkbox' %>
<% end %>
是的,第二个代码有效,但我想通过第一个选项,通过 interpolation,所以我的问题是:
为什么我没有在 "code problem" 中获取带插值的数据?
进行字符串插值时需要使用双引号,不需要调用to_s
(会自动转为字符串)....
id: "switch-sm-#{calendar_entry.id}"
我在 Rails 上与 Ruby 合作,我有一个简单的形式 gem 是这样的:
Code problem
<%= simple_form_for [:admins, @calendar_entry],
url: toggle_visibility_admins_calendar_entry_path(calendar_entry),
method: :patch,
remote: true do |f| %>
<%= f.input_field :visible,
id: 'switch-sm-#{calendar_entry.id.to_s}',
class: 'switch',
type: 'checkbox' %>
<% end %>
并且它在 HTML 中得到以下输出(检查输入 中的 id 属性):
<form novalidate="novalidate" class="simple_form new_calendar_entry" id="new_calendar_entry" action="/admins/calendar_entries/35/toggle_visibility" accept-charset="UTF-8" data-remote="true" method="post">
<input id="switch-sm-#{calendar_entry.id.to_s}" class="boolean optional switch" type="checkbox" value="1" name="calendar_entry[visible]">
</form>
忽略remote: true
和简单形式的所有属性,真正的问题是id属性[=32=中的插值 ], 由于某种原因我没有得到变量的数据,但是,我可以这样做:
Bad code by standards
<%= simple_form_for [:admins, @calendar_entry],
url: toggle_visibility_admins_calendar_entry_path(calendar_entry),
method: :patch,
remote: true do |f| %>
<%= f.input_field :visible,
id: 'switch-sm-'+calendar_entry.id.to_s,
class: 'switch',
type: 'checkbox' %>
<% end %>
是的,第二个代码有效,但我想通过第一个选项,通过 interpolation,所以我的问题是:
为什么我没有在 "code problem" 中获取带插值的数据?
进行字符串插值时需要使用双引号,不需要调用to_s
(会自动转为字符串)....
id: "switch-sm-#{calendar_entry.id}"