ここでRuby初心者は、ユーザーの「プロジェクト」モデルを「フォロー」できる(または「pfollow」と言ったように)htmlフォームを構築することに成功しました。 "モデル。唯一の問題は、ユーザーが1つのフォーム上で複数のプラントを「ポポロー」しようとするときに作成したコードが機能しないことです。ユーザが一度に選択ボックスから複数のプラントを選択した場合、私の "プロジェクト"モデルと私の "prelationship"コントローラは、入力として期待される単一の整数(別名、 "pfollower_id" "prelationships"コントローラによって作成アクションのために使用されているプラントから)。複数のリレーションシップを1つのフォームで構築するレール
"pfollower_id(s)"の配列を受け入れ、次に複数の植物プレオリッションを作成するようにアプリに教えるにはどうすればよいですか?ここで
は誤りです:undefined method `id' for #<Array:0x26abe70>
app/models/project.rb:35:in `pfollow!'
app/controllers/prelationships_controller.rb:6:in `create'
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"NKqa1f0M2yPLQDHbRLnxl3SiwBeTus/1q1hpZjD7hgY=",
"prelationship"=>{"pfollower_id"=>["4",
"5"]},
"project_id"=>"90",
"commit"=>"Pfollow"}
マイ "prelationships" コントローラ:
class PrelationshipsController < ApplicationController
def create
@project = Project.find(params[:project_id])
@plant = Plant.find(params[:prelationship][:pfollower_id])
@project.pfollow!(@plant)
respond_to do |format|
format.html { redirect_to @project }
format.js
end
end
end
そして容疑者 "pfollow!"
def pfollow!(pfollowed)
prelationships.create!(:pfollowed_id => pfollowed.id)
end
フォームが正常に動作しますので、pfollower_idsの配列を扱うことができないだけで、このコントローラおよび方法だ:トレースが示す私のモデル内のメソッドも過失です。
私は助けに絶望しています!あらゆる方向性が非常に役立ちます。
1つのパラメータでも機能します。フリージンのすごい。ありがとう、旅行! –