0

我有模型项目和模型用户。我在这些中有belongs_and_has_many。但是现在我需要告诉 Rails:这个特定的用户属于这个特定的项目。如何在项目控制器中执行此操作,以及如何从项目视图中调用此方法?非常感谢。

在项目的* 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”,参数从选择到与该用户关联的项目:-/

项目控制器中的方法addfiend :

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
4

2 回答 2

0

如果在模型项目中,你有has_and_belongs_to_many :users,你的项目对象有一个隐式集合users,可以像任何其他集合一样添加到,例如:

project.users << User.find(:first, :conditions => "name = 'foo'")
于 2013-05-05T18:15:13.830 回答
0

这在您的控制器操作中看起来像这样:

@project = Project.create(:user_id => user_id)

而 user_id 是您的外键(您可能希望从您的视图中传递的东西)。

此代码将编写在某些控制器操作中,您必须定义一个路由以将 URL 连接到此操作。

请注意,一旦您调用了运行此代码的操作,您就可以从您的视图中访问 @project。

您可以在此处阅读有关路线的信息。您可以在此处阅读有关 rails 中的 mvc 的信息。您可以在此处阅读有关关联的信息:http: //guides.rubyonrails.org/association_basics.html

于 2013-05-05T18:23:42.207 回答