【问题标题】:How do I pass params to my devise_invitable controller?如何将参数传递给我的 devise_invitable 控制器?
【发布时间】:2016-10-25 20:28:16
【问题描述】:

我创建了一个非常普通的邀请控制器:

class InvitationsController < Devise::InvitationsController
  def new
    binding.pry
  end
end

我创建了一个链接来触发该请求,如下所示:

<%= link_to "Invite #{@profile.name}", new_user_invitation_path(email: @profile.email), class: "btn btn-xs btn-primary" %>

我遇到的问题是,当我在那个动作中被撬开时,它没有向我显示 email 参数。

> params
=> <ActionController::Parameters {"controller"=>"invitations", "action"=>"new"} permitted: false>

如何使用 InvitationsControler#New 操作发送参数?

【问题讨论】:

    标签: ruby-on-rails devise ruby-on-rails-5 devise-invitable


    【解决方案1】:

    原来new_user_invitation_path对应GET请求一个新的邀请对象,生成一个新的表单。

    解决方案是在另一个控制器中创建另一个操作,然后简单地使用 method: :post 调用它,如下所示:

    <%= link_to "Invite #{@profile.name}", invite_path(@profile), method: :post, data: { confirm: "Are you SURE you are ready to invite #{@profile.name}?"}, class: "btn btn-xs btn-primary" %>
    

    这就像一个魅力。

    【讨论】:

    • 感谢您的帖子!我知道那是很久以前的事了,但是您是如何在不同的控制器中创建一个动作并随后仍然设法使用 devise_invitable 创建的?或者你做了什么不同的事情?
    猜你喜欢
    • 2018-07-14
    • 1970-01-01
    • 2022-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    相关资源
    最近更新 更多