我有这行代码:
<%= select_tag :friendship_id, options_from_collection_for_select(current_user.friendships, "id", "name", selected = nil) %>
选择'friends'表中记录的'name'并将其作为选项放在select_tag
上友谊有一个links_id链接到朋友表。我用
打电话给这个名字def name
self.friend.name
end
在友谊控制者中
该关联有效,因为我在网页上看到了名单。
我想:
我还没有找到任何东西。 对于问题2,我添加selected = nil无效。
提前感谢您的帮助
编辑(答案):
我最终采取了收集方式的方式,并寻找朋友而不是友谊。
<%= select_tag :friend_id, options_from_collection_for_select(current_user.friends, "id", "name"), :prompt => 'Select a friend...', :id => 'thought_contact_select' %>
在我的用户模型中
has_many :friends, :through => :friendships, :order => :name
我只是寻找与该朋友和控制器上的该用户相关的友谊
friendship = Friendship.find_by_user_id_and_friend_id(current_user.id, params[:friend_id])
答案 0 :(得分:0)
has_many
关联使用has_many :friendships, :order => 'name DESC'
访问友情时,请参阅此处has_many
的说明:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html :prompt
选项select_tag
,请参阅:http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-select_tag 修改强>
如果我理解你,你应该:
class User < ActiveRecord::Base
has_many :friendships
has_many :friends, :through => :friendships
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend
end
class Friend < ActiveRecord::Base
has_many :friendships
has_many :users, :through => :friendships
end
尝试将User
类更改为:
class User < ActiveRecord::Base
has_many :friendships
has_many :friends, :through => :friendships, :order => 'name'
end