3

編集:ソリューションは完全に機能しました。 dom_id

データをパーシャルに渡し、それを使用してユーザーの役割を変更しようとしています。現時点では、1 人のユーザーのロールのみが変更されます。レンダリングされると、のロールのみが表示され、作用します。User.first

レンダリングされる場所。私はローカルでユーザーを渡します。この投稿によると、最初の回答が機能せず、エラーが発生したため、2 番目の回答を使用しました。

<%= render :partial => 'roles', :locals =>  { :user => user } %>

以下は部分的な _role.html.erb です

<div id="roleModal" class="reveal-modal">
   <%= semantic_form_for user, :url => user_path(user), :html => {:method => :put } do |f| %>
      <h3>Change Role</h3>
      <div class="reveal-modal-body">
         <%= f.input :roles, :as => :check_boxes, :input_html => { :selected => user.role_ids } %>
      </div>
      <a class="close-reveal-modal">&#215;</a> 
      <%= f.action :submit, :as => :button %>
   <% end %>

<% @users.each do |user| %>
<tr>
  <td><%= link_to user.name, user %></td>
  <td><%= user.email %></td>
  <td><%= user.created_at.to_date %></td>
  <td><%= user.roles.first.name.titleize unless user.roles.first.nil? %></td>
  <td>

     <a href="roles#<%= user.id %>" data-reveal-id="roleModal" class="button" type="button">Change role</a>
    <%= render :partial => 'roles', :locals =>  { :user => user } %>

  </td>
</tr>
<% end %>
4

1 に答える 1

4

ローカルを部分的に正しいものに渡すことについて、最初の質問がありました。この問題は、非表示のフォームを表示するために一意ではない ID のペアを使用していました。そのため、公開リンクは常にその ID を持つ div の最初の出現を明らかにするため、常に最初のユーザーのロールが変更されます。

以下の 2 行を更新して、Rails ヘルパーを使用して、Foundation の明らかにするモーダル ドキュメントに従って、一致する一意のtodom_id()のペアを作成してみてください。data-reveal-idid

<a href="roles#<%= user.id %>" data-reveal-id="<%= dom_id(user) %>" 
class="button" type="button">Change role</a>

<div id="<%= dom_id(user) %>" class="reveal-modal">
于 2013-04-07T09:56:42.740 に答える