我一直在修补这个问题已有一段时间了,似乎无法弄明白这一点.它可能很简单,但是这里有:
我在'层压板'和'标准'之间有一个has_many:trough关系,加上模型'标准化'.
Standard.rb
class Standard < ActiveRecord::Base
attr_accessible :description, :name
has_many :standardizations
has_many :laminates, :through => :standardizations
end
Run Code Online (Sandbox Code Playgroud)
Standardization.rb
class Standardization < ActiveRecord::Base
attr_accessible :laminate_id, :standard_id
belongs_to :laminate
belongs_to :standard
end
Run Code Online (Sandbox Code Playgroud)
Laminate.rb
class Laminate < ActiveRecord::Base
attr_accessible :name, :standard_ids
has_many :standardizations
has_many :standards, :through => :standardizations
end
Run Code Online (Sandbox Code Playgroud)
情景是层压板可以属于几个标准,我已经在视图的新部分工作了 - 复选框和所有东西.我的问题是在尝试显示给定层压板的相应标准的名称时.截至目前,我能够显示层压板所分配的标准,但不仅仅是标准的名称.
我的show.html.erb说:
<%= @laminate.standards %>
Run Code Online (Sandbox Code Playgroud)
这会使一切正确,但是说
<%= @laminate.standards.name %>
Run Code Online (Sandbox Code Playgroud)
......不起作用.我怎样才能利用每个人的名字,分配标准?
Laminate_controller:
class LaminatesController < ApplicationController
# GET /laminates
# GET /laminates.json
def index
@laminates = Laminate.all
@standards = Standard.all
respond_to …Run Code Online (Sandbox Code Playgroud) ruby many-to-many views ruby-on-rails has-and-belongs-to-many