1

link_to を使用して、必要な手順を実行するために 2 つのパラメーターを必要とするコントローラー メソッドを開始しています。構文を正しく理解できないようですが、この特定の構文を使用して複数のパラメーターを渡すことができないためではないかと考えています。これが私がこれまでに持っているものです:

<%= link_to 'Select',
            {controller: 'groups',
             action: 'associate_subgroup_with_org',
             organization_id: organization.id,
             subgroup_id: @activity.group.id},
            class: 'button' %>

def associate_subgroup_with_org
    @organization = Group.find(params[:organization_id])
    @subgroup = Group.find(params[:subgroup_id])
    @subgroup.parent_group_id = @organization.id

    respond_to do |format|
      format.js
    end
end

リンクが機能せず、コントローラーのアクションを入力しませんassociate_subgroup_with_org。誰かが構文を正しくするのを手伝ってくれますか?

4

3 に答える 3

8

次のようなルートを作成できます。

get '/groups/associate_subgroup_with_org' => 'groups#associate_subgroup_with_org', :as => :associate_subgroup

任意の番号を送信できます。パラメータの link_to:

<%= link_to 'Select',
            {controller: 'groups',
             action: 'associate_subgroup_with_org',
             organization_id: organization.id,
             subgroup_id: @activity.group.id},
            class: 'button' %>

または、

<%= link_to 'Select',associate_subgroup_path(organization_id: organization.id, subgroup_id: @activity.group.id),class: 'button' %>
于 2013-06-21T05:06:38.317 に答える
2

ルートで指定する必要があります。このようなもの:

get "/groups/:id/subgroup/:state" => "groups#subgroup", :as => :subgroup

そして、次のようにリンクを書きます。

subgroup_path(@organization, @subgroup)

あなたが使用しているどんなシンボルでも。

于 2013-06-21T03:48:48.367 に答える
1

link_to/form_url でコントローラーとアクションを使用することはお勧めしません。グループのリソースがあると思います。つまり、routes.rb のようなものresources :groupsです。その場合は、次のようなコレクション メソッドを追加します。

resources :groups do
  #....
  post :associate_subgroup_with_org
end

今、あなたは使用することができますassociate_subgroup_with_org_groups_path(p1: v1, p2: v2, .....)

または、1 つの名前付きルートを次のように定義できます。

post 'groups/associate_subgroup_with_org', as: :associate_subgroup_with_org

今、あなたは使用することができますassociate_subgroup_with_org_path(p1: v1, p2: v2, .....)

その明確なことを願っています

于 2013-06-21T05:26:45.853 に答える