0

ラジオ ボタンを使用して、管理者にユーザーを承認させようとしています。したがって、ページには、承認を待っているすべてのユーザーのリストがあります(ユーザー モデルの true/false 値)。管理者は、すべてのラジオ ボタン フィールドで「はい」を設定するか、「いいえ」のままにした後、独自の送信ボタンを押す必要があります。

承認の更新のためにすべてのユーザーをコントローラーに渡す方法を見つけようとしています。

<%= form_tag(approve_url, :html => { class: "form-inline"}  )do |f| %> 
  <table>
    <% @tobeapproved.each do |user| %>
      <tr >
        <td>
          <%= user.name %>
        </td>
        <td>
          <%= user.surname %>
        </td>
        <td>
          <%= user.email %>
        </td>
        <td>
          <%= label :approved %>
          <%= radio_button_tag "approved[#{user.id}]", "true" %> Approved
          <%= radio_button_tag "approved[#{user.id}]", "false" %> Not approved
        </td>
      </tr>
    <% end %>
  </table>
  <%= f.submit %>
<% end %>

送信時に "approved[id]"=>{"true/false"} を取得する必要がありますよね? 私はこれらすべてについて非常に新しいです。ありがとうございました

4

1 に答える 1

0

結局、私はそのようなことをする方法を見つけました。

<%= form_tag(approve_url, :html => { class: "form-inline"}) do |f| %> 
  <table>
    <% @tobeapproved.each do |user| %>
    <tr >

      <td>
        <%= user.name %>
      </td>
      <td>
        <%= user.surname %>
      </td>
      <td>
        <%= user.email %>
      </td>
      <td>
        <%= radio_button_tag "approved[#{user.id}]", "true"  %> Approved
        <%= radio_button_tag "approved[#{user.id}]", "false", true  %> Not approved
      </td>
    </tr>
  <% end %>
</table>
<%= submit_tag 'Confirm'%>

それは、paramsで次のようなものになります:

"approved"=>{"27"=>"false", "26"=>"false", "25"=>"true"}

そして私のコントローラーで:

 def update
   @users = params[:approved]
   logger.debug "The object is #{@users}"

   respond_to do |format|
   @users.each_pair do |key, value|
     user = User.find(key)
     user.update_attribute(:approved, value)
   end
   format.html { redirect_to :action => :list, notice: 'Users updated' }
end

しかし、このコードはひどいものだと思います。誰でもそれを改善する方法を知っていますか?

于 2012-06-07T15:42:32.713 に答える