0

我正在考虑解决我的问题,需要一些帮助。

我需要向用户付费,所以我有页面,管理员可以在其中查看所有用户并可以为每个用户付费。

我有网站模型,属于用户。取决于网站模型的某些属性我应该支付给用户,但是用户有很多网站,我不清楚如何组织这个。

我可以通过调用获取所有用户的网站

    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

我不确定我是否正确理解您的问题,但我认为这可以帮助您

<% 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 回答
1

据我了解您的问题,根据网站的属性,用户会为他们的网站付费。我将其结构如下:

  • 在网站模型中创建一个方法来计算这个特定网站的“价值”
  • 在用户中创建一个方法,总结 user.website 中所有网站的值,例如

    总计 = user.websites.inject{ |sum,website| 总和+website.value }

  • 使用最后一种方法来获取控制器操作中的金额。它不应该在控制器中计算,更不用说根据 MVC 模式在视图中计算了。

说到这一点,我会考虑为 pay 操作创建一个特殊的 Controller(而不是将其塞入 StaticPagesController,它毕竟不是静态页面),甚至可能是一个没有 Persistence 的模型来处理我认为不属于的 compute_payment 方法用户.rb。

于 2012-07-26T09:37:09.687 回答