2017-05-30 26 views
1

我研究了這個錯誤,但我無法解決這個問題。error_message部分得到一個NameError:未定義的局部變量或方法`對象'

這裏是_micropost_form.html.erb

<%= form_for @micropost do |f| %> 
    <%= render partial: 'shared/error_messages', object: f.object %> 
    <div class="field"> 
    <%= f.text_field :content, placeholder: " Caption..." %> 
    </div> 
    <%= f.submit "Post", class: "btn btn-primary" %> 
    <span class="picture"> 
    <%= f.file_field :picture %> 
    </span> 
<% end %> 

這裏是_error_messages.html.erb

​​

這裏是microposts_controller

def new 
    @micropost = current_user.microposts.build 
    @feed_items = current_user.feed.paginate(page: params[:page]) 
end 
+0

什麼是''.object?請爲'Micropost'模型顯示您的模式/遷移。 – Gerry

+0

分享給你'error_messages'部分,不應該是'f.errors'嗎? –

回答

0

NameError: undefined local variable or method `object'

您可以通過兩種方式,renderrender partial:呈現部分。但是當您使用partial:時,您需要發送變量中的locals:散列。所以,這是不行的

<%= render partial: 'shared/error_messages', object: f.object %> 

應該

<%= render partial: 'shared/error_messages', locals: {object: f.object} %> 

或不partial:關鍵

<%= render 'shared/error_messages', object: f.object %> 
+1

工作,謝謝。我正在關注另一篇關於部分文章的文章:那裏沒有包括當地人:哈希。 –

+1

答案接受,仍然是新的stackoverflow :) –

-3

您可以更改以下

代碼10
<%= render partial: 'shared/error_messages', object: f.object %> 

<%= render partial: 'shared/error_messages', object: f.object %> 

我希望這可以幫助您。

0

一對夫婦的想法:

是否f.object有一個值?

而且 - 嘗試這樣的事情傳遞給object部分:

<%= render partial: 'shared/error_messages', :locals => {:object => f.object} %> 
相關問題