私は Hartl の RoR チュートリアルを終えたばかりで、現在、さらにいくつかのことをいじろうとしています。
header.html.erb
具体的には、ファイル内のマイクロポストを部分的にレンダリングすることにより (すべてのページでレンダリングされます)、ユーザーが任意のページでマイクロポストを作成できるようにしようとしています。
部分:
<%= form_for(@micropost) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :content, placeholder: "micropost" %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
これを行うと、上記のビューにリンクするコントローラーメソッドをundefined method 'model_name' for NilClass:Class
追加することで修正していないページで、パーシャルの #1 行目にエラーが発生しました。@micropost = current_user.microposts.build
例えば:
#in controllers/static_pages_controller.rb
def about
if signed_in?
@micropost = current_user.microposts.build
end
end
about
ページにアクセスすると、このエラーが修正されます
私は、どこにでも宣言を貼り付ける必要なく、すべてのページで機能する「ブランケット修正」を行う方法を見つけようとしています。何かアイデアはありますか?