0

私は、begs_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) %>

Projects コントローラー アクションで、このための最初の 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 に答える