真的可以用你的幫助,瞭解這個複雜的軌道問題,我一直在敲打由靠在牆上頭...的form_for嵌套資源權限(Y型)
我有以下型號:
Permissions (user_id, role_id, project_id)
Roles (id, name)
Projects (id, name)
權限是角色和項目的Y模型。
我努力使一個表單,允許用戶添加或更新用戶的項目許可
在控制器中,我有:
@project = Space.find(params[:project_id])
@permission = @project.permissions.find_by_user_id(params[:user_id])
然後在視圖:
<%=form_for [:space, @permission] do |f| %>....
但是這是行不通的,錯誤:
如果(用戶&項目)的標準,不具備在任何數據庫記錄:「未定義的方法`MODEL_NAME」的NilClass:類」
如果在一個數據庫中的記錄,這意味着用戶確實有在這個項目上的角色:
"No route matches {:action=>"destroy", :controller=>"permissions", :project_id=>#<Permission project_id: 3, role_id: 2, user_id: 13>}"
理想情況下,我想這種形式來顯示當前的權限,如果對於任何給定的(使用/項目)......如果沒有當前的權限,我希望該人能夠創建一個記錄。
任何有關Rails 3中這種類型關係的經驗?感謝您提供任何可以發送給我的提示。
路線文件(這是專門針對這些車型的部分)
resources :projects do
resources :photos, :permissions
collection do
get 'yourcurrentprojects'
end
end
控制器 - 路徑,用戶被給予選項CRUD權限:/projects/3/permissions
- 我相信我會想使用權限。 rb def顯示和def更新以獲取和設置權限?
剛剛更新如此「進度」仍然無法正常工作 – AnApprentice 2010-10-12 00:24:40
Was able將FORM更新爲「<%= form_for [:project,@permission] do | f |」 %>「,但這隻對創建新權限有用,如何顯示當前權限,然後允許用戶創建/更新?謝謝! – AnApprentice 2010-10-12 00:27:17
也試過」@permission = @ project.permissions.find_by_user_id(params [:user_id] )「但是得到:」未定義的方法'模型名稱爲NilClass:類「 – AnApprentice 2010-10-12 00:51:55