2013-05-05 1 views
0

У меня есть проектные и пользовательские модели с собственностью_и__as_many. Теперь мне нужно добавить конкретного пользователя в коллекцию проекта. У меня есть метод в контроллере проектов:Rails: Добавить пользователя в коллекцию пользователей проекта

def addfriend 
    @project = Project.find(params[:id]) 
    @project.users << User.find(params[:user]) 
    respond_to do |format| 
    format.html { redirect_to project, :notice => 'Added.' } 
    end 
end 

и у меня есть этот код в show.html.erb проекта:

<select id="user_select" name="user_select" class="input-large"> 
    <% @users.each do |user| %> 
    <option><%= user.username %></options> 
    <% end %> 
</select> 
<!-- button to addfriend method here --> 

Теперь мне нужно кнопку, чтобы добавить метки на в коде (или в другом месте) с вызовом метода «addfriend».

В routes.rb У меня есть:

resources :projects do 
    collection do 
    get :addfriend 
    end 
end 

ответ

1

Предполагая, что у вас есть @project переменная определена где:

<%= link_to 'Add friend', addfriend_project_path(@project, user_id: user.id) %> 

в проектах изменения действия контроллера на 2 Firsts линии для это:

project = Project.find(params[:id]) 
@project.users << User.find(params[:user_id]) 

И по вашим маршрутам:

resources :projects do 
    member do 
     get :addfriend 
    end 
end 
+0

Отлично! Спасибо. – medy75

Смежные вопросы