2012-08-29 47 views
0

我是新來的導軌,卡在奇怪的junction。問題與路線有關。 下面是我的代碼開機自檢過程中的導軌佈線問題

路線 $

resources :users do 
resources :requests 
end 

user.rb

class User < ActiveRecord::Base 
attr_accessor :password 
attr_accessible :email, :firstname, :lastname, :state, :city, :password 
has_many :requests ,:foreign_key => :user_id,:autosave => :true 

request.rb

class Request < ActiveRecord::Base 
attr_accessible :email, :status, :user_id,:token 
belongs_to :user 

申請表HTML

<%= form_for (user_requests_path) do |f| %> 
<div class="field"> 

<%= f.label "Email" %><br /> 
<div class="fieldgroup"> 

<%= f.text_field :email , :class=>"textfield"%> 

</div> 
<div id="spacer"> 

</div> 
<div class="fieldgroup"> 
<%= f.submit "Invite", :class=>"custombutton" %> 
    </div> 
    <% end %> 
</div> 

當我點擊下申請表 我遇到下面的錯誤,而不是調用請求#創建邀請按鈕。

路由錯誤

No route matches [POST] "https://stackoverflow.com/users/9/requests/new"

請求控制器

def create 
@user = User.find(params[:user_id]) 
@request = @user.requests.create(params[:request]) 
redirect_to user_path(@user) 
end 

回答

0

您需要將用戶對象,所以軌道哪個用戶比如你參考:

<%= form_for (user_requests_path(@user)) do |f| %> 

另外在:

has_many :requests ,:foreign_key => :user_id,:autosave => :true 

你不需要通過:foreign_key => :user_id,即默認外鍵,即「model_id」

0

個對於嵌套的資源,你需要兩個參數傳遞給一些幫手,所以,例如,

user_request_path(@user, @request) 

等。 Rails資源指南是一個很大的幫助。