我想带来所有资源,然后显示来自'curso'的'nombre'字段。一个curso有很多资源。(我已经完成了所有has_many和belongs_to配置。)
为此我做了以下事情: resources_controller:
def index
@resources = Resource.all
end
的index.html:
<% @resources.each do |resource| %>
<tr>
<td><%= resource.title %></td>
**<td><%= resource.curso.nombre %></td>**
<td><%= resource.cantidad %></td>
<td><%= link_to 'Show ', resource %></td>
<% else %>
<% end %>
但是当我测试它时,它会给我以下错误:“未定义的方法`nombre'为nil:NilClass”
你知道它能成为什么吗?谢谢!
答案 0 :(得分:1)
这表示此特定<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="100000"/>
</bean>
与您的任何resource
无关。
如果您想要强制每个curso
在创建时resource
与curso
相关联,那么您应该在Resource
模型中使用此class Resource < ActiveRecord::Base
belongs_to :curso
# Validate the presence of curso in every resource.
validates :curso, presence: true
end
class Curso < ActiveRecord::Base
# When any curso is destroyed, all it's associated resources should be gone.
has_many :resources, dependent: :destroy
end
:
curso_id
仅在上述情况下,您可以确保资源在创建过程中始终具有curso。
此外,您可以在resources
表的{{1}}字段上具有数据库级 not null 约束。
答案 1 :(得分:0)
好像有些resources
don t have a
curso`。
在调用curso
之前,只需检查nombre
是否存在:
<%= resource.curso.nombre if resource.curso %>
或
<%= resource.curso && resource.curso.nombre %>
或
<%= resource.curso.try(:nombre) %>