我的项目和用户模型中包含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
答案 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