2016-04-02 76 views
-1

我在創建使用嵌套資源的編輯鏈接時遇到問題。我的帳戶有很多用戶,我想從帳戶顯示頁面爲用戶創建一個編輯鏈接。以下是我的帳戶顯示視圖,帳戶控制器。你可以提供的任何幫助都會很棒。謝謝。找不到沒有ID的用戶,試了一下

帳戶/查看/顯示

<h2>Users</h2> 
    <% @account.users.each do |f| %> 
    <% next if f.name.nil? %> 

     <p> 
     <%= link_to f.name, edit_account_user_path(@user.account, @user) %> 
    </p> 

賬戶控制器顯示

def show 
    @user = @account.users.find(params[:account_id]) 
    account = Account.find(params[:account_id]) 

    end 

路線

resources :accounts 
    resources :users 

    resources :accounts do 
    resources :users 
    end 

帳戶型號

class Account < ActiveRecord::Base 
    has_many :users, dependent: :destroy 
    accepts_nested_attributes_for :users 
end 

用戶模型

class User < ActiveRecord::Base 
    belongs_to :account 
end 
+0

一個需要注意的有關''零的模型屬性?當表單字段爲空時,往往會在數據庫中存儲空字符串,因此'nil?'將返回true。 '如果是f.name.blank,那麼下一個%? %>'在這裏更合適。 OMG。 –

回答

1

您試圖創建一個迭代器內編輯鏈接,你必須f爲指的是與@account每個user變量。

所以,你應該有這樣的事情,而不是 -

<% @account.users.each do |f| %> 
<% next if f.name.nil? %> 

    <p> 
    <%= link_to f.name, edit_account_user_path(@account, f) %> 
</p> 
<% end %> 
+0

OMG。對我來說,這總是很小而且很愚蠢。您的解決方案完美運作謝謝@dkp! – richiepop2

+0

除命名外,這個'f'應該是'user'。 –

+0

@ richiepop2很高興它解決了這個小問題:) – dp7