說明:我下面的教程toy_app:https://www.railstutorial.org/book/toy_app如何使用Ruby on Rails關聯?
我有根據第帶有運動問題的問題2.3.3
問題:編輯用戶顯示頁面中顯示的內容用戶的第一個微博。 (根據文件中的其他內容,使用技術複雜性(框1.1)來猜測語法。)通過訪問/ users/1確認它的工作。
在我的app/views/users/show.html.erb文件中。我嘗試使用我的@ micropost.content對象來顯示與用戶關聯的任何內容。
<p id="notice"><%= notice %></p>
<p>
<strong>Name:</strong>
<%= @user.name %>
</p>
<p>
<strong>Email:</strong>
<%= @user.email %>
</p>
<p>
<strong>Content:</strong>
<%= (<%= @micropost.content %>) %>
</p>
<%= link_to 'Edit', edit_user_path(@user) %> |
<%= link_to 'Back', users_path %>
結果
NoMethodError中的用戶#表明
未定義的方法 '內容' 的零:NilClass
結論
我需要生成一個的form_for我的崗位我應用程序/視圖/用戶文件?或者,因爲我在我的microposts_controller.rb中的私有'micropost_params'方法中設置了我的:content對象,它不允許在控制器之間傳輸對象數據?
我的控制檯內測試了以下幾行代碼,以確保關聯的工作:
first_user = User.first
first_user.microposts
micropost = first_user.microposts.first
micropost.user
我覺得我需要定義,讓我進入我的用戶控制文件中的一個方法:內的內容對象我的MicroPosts班。
您是否在控制器的show方法中設置了@ @ micropost變量? –
它應該是'@ user.micropost.content',或者在您的控制器中導出'@micropost = User.first.microposts',並在視圖中處理數組。 – joaumg
@joaumg:實際上,兩者都不會起作用。它應該是別的東西:) –