2014-07-14 48 views
2

我试图能够通过best_in_place直接在索引页面上控制我的usermanagement。但是说到选择角色,到现在为止它并不适合我。Best_in_place collection 1 to many association

我的模式是这样的:

class User < ActiveRecord::Base 
    belongs_to :role 
    before_create :set_default_role 

    def set_default_role 
    self.role ||= Role.find_by_name('Guest') 
    end 


end 

class Role < ActiveRecord::Base 
    has_many :users 
    has_and_belongs_to_many :permissions 
    accepts_nested_attributes_for :users, :permissions 
end 

我做了什么直到现在试图选择在集合外键role_id选择,但我不能得到它的工作,我看到在我的选择现有角色的名称落下。

<td><%= best_in_place user, :role_id, :type => :select, :collection => "???" %></td> 

希望有人可以帮忙。

此致敬礼!

编辑:user_controller.rb

class UsersController < ApplicationController 
    before_action :set_user, only: [:show, :update, :destroy] 


    def index 
    @users = User.all 
    end 

    def show 
    end 

    def update 
    @user.update_attributes(user_params) 
    respond_with @user 
    end 

private 

    def set_user 
    @user = User.find(params[:id]) 
    end 

    def user_params 
    params.require(:user).permit(:role_id) 
    end 

end 
+0

您可以发布您的控制器代码? – Pavan

+0

你可以在上面看到它! – Syk

+0

试试这个'<%​​= best_in_place user,:role_id,:type =>:select,:collection => @ users.map {| i | [i.id,i.name]}%>' – Pavan

回答

3

这应该工作,你

<%= best_in_place user, :role_id, :type => :select, :collection => Role.all.map { |i| [i.id, i.name] } %> 

更多信息here

+0

谢谢,它适用于我:) – SSR