Nic*_*ick 6 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
我有几个可以从任何控制器渲染的共享部分,但是我在从另一个控制器渲染表格部分时遇到了一些麻烦.我希望能够为我的联系人添加备注
在我的contacts/show.html.erb中,我有以下内容
<% render :partial => "notes/form", :note => Note.new %>
Run Code Online (Sandbox Code Playgroud)
在我的笔记/ _form.html.erb中,我有以下内容
<%= form_for @note do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<p>
<%= f.label :content %><br />
<%= f.text_field :content %>
</p>
<p>
<%= f.label :contact_id %><br />
<%= f.number_field :contact_id %>
</p>
<p><%= f.submit %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
但是我得到错误:
显示/Applications/Rails/apps/saas31/app/views/notes/_form.html.erb,其中第1行引发:
用于NilClass的未定义方法`model_name':Class
提取的来源(第1行):
1:<%= form_for @note do | f | %> 2:<%= render'shared/error_messages',:object => f.object%>
我开始掌握铁轨,但在学习任何新东西时我会想到一些令人沮丧的小问题.有人有主意吗?
Gaz*_*ler 18
您的局部变量应该通过locals哈希传递.
<% render :partial => "notes/form", :locals => {:note => Note.new} %>
Run Code Online (Sandbox Code Playgroud)
你的部分也不应该使用实例变量,改变以下内容:
<%= form_for @note do |f| %>
Run Code Online (Sandbox Code Playgroud)
至:
<%= form_for note do |f| %>
Run Code Online (Sandbox Code Playgroud)
编辑
如果要使用实例变量,可以执行以下操作:
<% render :partial => "notes/form", :locals => {:note => @note} %>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8810 次 |
最近记录: |