我有模型项目和模型用户。我在这些中有了belongs_and_has_many。但现在我需要告诉Rails:这个特定的用户属于这个特定的项目。如何在Project控制器中执行此操作,如何从项目视图中调用此方法?非常感谢你。
在项目的* 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
答案 0 :(得分:0)
如果在模型项目中,您有has_and_belongs_to_many :users
,则项目对象具有implicit collection个用户,可以像任何其他集合一样添加,例如:
project.users << User.find(:first, :conditions => "name = 'foo'")
答案 1 :(得分:0)
在控制器操作中看起来像这样:
@project = Project.create(:user_id => user_id)
虽然user_id是你的外键(你可能希望从你的视图中传递出来)。
此代码将在某些控制器操作中编写,您必须定义将URL连接到此操作的路由。
请注意,一旦调用运行此代码的操作,您就可以从视图中访问@project。
您可以阅读有关路线here的信息。 您可以在rails here中阅读有关mvc的信息。 你可以在这里阅读关联: http://guides.rubyonrails.org/association_basics.html