ruby on rails form_for self referential model

时间:2013-06-04 04:41:19

标签: ruby-on-rails controller action form-for

这是我的表单中的一行,用于在两个用户之间创建关系

<%= form_for(current_user.relationships.build(followed_id: @user.id) do |f| %>
<%= f.hidden_field :followed_id %>
<%= f.submit "follow" %>

关系控制器创建方法:

def create
  @user = User.find(params[:relationship][:followed_id])
  current_user.follow!(@user)
  respond_to do |format|
    format.html { redirect_to @user }
    format.js
  end
end

我正在试图找出如何将current_user.relationships.build逻辑移出表单并进入控制器,是否可能?

1 个答案:

答案 0 :(得分:0)

我能够弄清楚如何将逻辑移出表单。 基本上,传递给form_for帮助器的对象需要初始化。我将初始化逻辑放入用户帮助程序并将该方法传递给form_for帮助程序。所以这就是你得到的

用户帮助方法

def initializing_relationships
 current_user.relationships.build(followed_id: @user.id)
end

在您调用initializing_relationships

的表单中
<%= form_for(initializing_relationships) do |f| %>

这确实清理了表格。