0

私は自分の問題を解決することを考えていて、助けが必要です。

ユーザーに支払う必要があるため、管理者がすべてのユーザーを表示し、それぞれに支払うことができるページがあります。

ユーザーに属するWebサイトモデルがあります。ユーザーに支払う必要がある Web サイト モデルの属性によって異なりますが、ユーザーには多くの Web サイトがあり、これを整理する方法がわかりません。

電話することで、すべてのユーザーのWebサイトを取得できます

    user.websites

編集:すべての支払いを合計する必要がないため、各ウェブサイトに個別のリンクを生成する方法を取得できません-各ウェブサイトに個別のリンクが必要です

これが私の支払い機能です(関連するコードのみを残します):

   def pay
     ...
    user = User.find(params[:user_id])
    @params_id = params[:user_id]
    @websites = user.websites
       data = {"actionType" => "PAY",
               "receiverList.receiver(0).email"=> user.email,
              "receiverList.receiver(0).amount" => website.amount,         
    ...

   end

または、それぞれが自分の見解で行うウェブサイトを追加する必要があります。何かのようなもの:

     <% @users.each do |user| %>
      <%@websites.each do |website|%>
     <li>
     <%= user.email %>
      <%= link_to "Pay", pay_path(user.id, website.amount)%>
    </li>
    <%end%>
 <% end %>

あなたが私を推薦できるものと私はどんな助けにも感謝します!

4

2 に答える 2

1

あなたの質問を理解しているように、ウェブサイトの属性に応じて、ユーザーはウェブサイトに対して支払いを受けます。これを次のように構成します。

  • この特定の Web サイトの「価値」を計算するメソッドを Web サイト モデルに作成する
  • user.website 内のすべての Web サイトの値を合計するメソッドを user に作成します。

    合計 = user.websites.inject{ |sum,website| 合計+ウェブサイト.値}

  • この最後のメソッドを使用して、コントローラー アクションで金額を取得します。コントローラーで計算するべきではなく、MVC パターンに従ったビューではなおさらです。

そういえば、有料アクション用の特別なコントローラーを作成することを検討します (StaticPagesController に詰め込むのではなく、結局のところ静的ページではありません)。おそらく、私が属していないと感じる compute_payment メソッドを処理するための永続性のないモデルでさえあります。 User.rb。

于 2012-07-26T09:37:09.687 に答える
1

あなたの質問を正しく理解しているかどうかはわかりませんが、これが役立つと思います

<% users.each do |user| %>
  <% user.websites.each do |website| %>
    <span id="user-email"><%= user.email %></span>
    <span id="payment"><%= link_to "Pay #{number_to_currency(website.amount)}", pay_path(user.id, website.id), remote: true, confirm: "Are you sure you want to pay?" %></span>
  <% end %>
<% end %>
于 2012-07-26T09:35:18.630 に答える