Rails:将用户添加到项目的用户集合中

时间:2013-05-05 21:39:36

标签: ruby-on-rails view collections call

我的项目和用户模型中包含belongs_and_has_many。现在我需要将特定用户添加到项目的集合中。我在项目控制器中有方法:

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 个答案:

答案 0 :(得分:1)

假设您在某处定义了@project变量:

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

在您的“项目”控制器操作中,为此更改2条第一行:

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

在您的路线中:

resources :projects do
  member do
      get :addfriend
  end
end