0

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

<%= 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 逻辑移出表单并进入控制器,这可能吗?

4

1 回答 1

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| %>

这真的清理了表格。

于 2013-06-06T18:02:57.027 回答