我有3種型號如何使用每個迭代器來顯示所有@ instanceVariable.find的)結果(屬性
一,項目
系
3.Post
class Project < ActiveRecord::Base
has_many :projectdepartments
has_many :departments, through: :projectdepartments
has_many :posts, as: :postable
end
class Department < ActiveRecord::Base
validates :name, presence:true
belongs_to :company
has_many :projectdepartments
has_many :projects, through: :projectdepartments
has_many :posts, as: :postable
end
class Post < ActiveRecord::Base
belongs_to :user
belongs_to :postable, polymorphic: true
end
@project
是@postable
其中many_to_many協會與@department
和每個部門都有它的名字
我的問題是: 當我使用柱控制器 @postable.departments.first.name
或@postable.departments.find(2).name
它會顯示正確的結果,我需要像分別
「銷售」,
「會計」`。
然而,當我需要向他們展示所有和使用迭代器像下面
@postable.departments.each do |department|
department.name
end
結果成爲"department-0x007f26c9993378", "department-0x007f26c9992ae0"
class PostsController < ApplicationController
def new
@post = Post.new
end
def create
@post = @postable.posts.build(post_params)
@post.user = current_user
@post.tag = put_tag
if @post.save
redirect_to @postable, notice: "Created"
else
render :new
end
end
private
def put_tag
# @postable.departments.first.name #This line work if uncomment
# @postable.departments.find(2).name #This work fine as well if uncomment
@postable.departments.each do |department|
department.name
end
end
def post_params
params.require(:post).permit(:content, :user_id, :tag)
end
end
我試圖嵌套迭代器,它仍然無法正常工作。
鑑於:
<% @posts.each do |post|%>
<%= simple_format post.content %>
<%= post.tag.map {|t| t}%>
<% end %>
我的問題是,如何顯示的
所有的結果@ postable.departments.first.name
@ postable.departments.find(2)。命名如果有任何
@ postable.departments.find(3).NAME ....等適當
像
「銷售」,「會計」,而不是「部門 - 0X007F(隨機數每次)」,「HR」
我想我們需要更多的信息。你在哪裏運行'@ postable.departments.each ...'?在視圖中,控制器,控制檯等?如果你可以發佈你正在調用的大部分文件,這將有所幫助。 – kcdragon
我在後控制器中做了一個方法,並希望結果顯示在視圖中。 –
您可以編輯您的文章,以包含它出現在控制器和視圖中的代碼嗎?我們需要看到實際的代碼。 – kcdragon