2

下面是引导程序中模态的一段代码。我试图完全掌握正在发生的事情,但我role-options-<%= user.id %>在 href= 和 div id 标签中都遇到了问题。我只是不明白这里发生了什么。我觉得它正在以某种方式传递数据。我也不确定如何正确搜索这个。因此,如果有人对我有任何见解或他们可以指出的地方,那将解释这一行。

它是直接链接到 div 并传递 user.id 吗?

<a data-toggle="modal" href="#role-options-<%= user.id %>" class="btn btn-mini" type="button">Change role</a>
    <%= render user %>


<div id="role-options-<%= user.id %>" class="modal" style="display: none;">
<%= simple_form_for user, :url => user_path(user), :html => {:method => :put, :class => 'form-horizontal' } do |f| %>
<div class="modal-header">
  <a class="close" data-dismiss="modal">&#215;</a>
  <h3>Change Role</h3>
</div>
<div class="modal-body">
  <%= f.input :role_ids, :collection => Role.all, :as => :radio_buttons, :label_method => lambda {|t| t.name.titleize}, :label => false, :item_wrapper_class => 'inline', checked: user.role_ids.first %>
</div>
<div class="modal-footer">
  <%= f.submit "Change Role", :class => "btn" %>
  <a class="btn" data-dismiss="modal" href="#">Close</a>
</div>
<% end %>
</div>
4

1 回答 1

1

任何你在 ERB 标记中看到<%= ... %>标签的地方,标签中的 Ruby 代码都在运行,结果在模板中以文本形式打印出来(从技术上讲,Ruby 代码的结果值具有#to_s调用它的方法,将其转换为细绳)。

所以在这个片段中:

<div id="role-options-<%= user.id %>" 

ERB 模板正在生成一个<div>元素,该元素的id属性值为“role-options-”,Ruby 代码user.id.to_s返回的内容将在哪里。

这段代码也很相似:它创建了一个属性为 form的 link ( <a>) 元素。唯一的区别是它以 开头,这意味着链接将是一个页面锚点,即它将链接到同一页面的不同部分,即前面提到的。href#role-options-<user ID>#<div>

于 2013-04-07T07:43:46.783 回答