0

我有项目和用户模型,其中包含 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
4

1 回答 1

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
于 2013-05-06T02:32:23.333 回答