【问题标题】:Routing question in nested resources form for ".each do" structure - Rails 3“.each do”结构的嵌套资源表单中的路由问题 - Rails 3
【发布时间】:2011-06-21 12:15:36
【问题描述】:

在我的路线中,我有:

resources :accounts do
    resources :transfers
      put '/transfers/:id(.:format)' => 'transfers#accept'
  end

在我的模型中:

class Transfer
  include DataMapper::Resource
  belongs_to :account
  belongs_to :alias_from, "Alias"
  belongs_to :alias_to, "Alias"

class Account
  include DataMapper::Resource
  belongs_to :user
  has n, :transfers

在我看来:

  <% @transfers_in.each do |income|%>
  Amount: <%= income.amount%> <%= income.account.currency%> 
      <% form_for ([???, income]), :as => :transfer, :url => {:controller=>'transfers', :action => 'accept'} do |f|%>
      Choose the account <%= f.collection_select :account, @accounts, :name, :name %> 
      <%= f.submit :value => "Accept" %>
      <% end %>
 <% end %>

如果这里@transfers_in 被其他协会调用,我应该如何调用这里的帐户?

@aliases = @owner.aliases.all()
@transfers_in = @aliases.transfers_in.all()

我尝试过类似的东西

<% @acc = Account.all()%>
          <% @trs = @acc.transfers.get(:id => income.account)%>
          <% form_for ([@trs, income]), ....

但这给了我

没有路线匹配 {:controller=>"传输", :action=>"接受"}

在 rake 路由中存在这样的路由。

非常感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails routing datamapper nested-forms


    【解决方案1】:

    在您的路由中,使用 Rails 为路由提供的宏应该会获得更好的结果。不要做旧式的路线图,试试:

    resources :accounts do
      resources :transfers do
        put 'accept', :on => :member
      end
    end
    

    路由器在 RESTful 路由方面非常智能,但是当您开始手动映射事物时,它可能会感到困惑……尤其是当您在嵌套的 RESTful 路由中进行映射时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 2016-04-05
      相关资源
      最近更新 更多