0

これは、2 人のユーザー間の関係を作成するために使用される、私のフォームの行です。

<%= 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 に答える