将与控制器关联的表单放入另一个控制器
Putting form associated with a controller in another controller
我想做的事情很简单,但由于某些原因我遇到了很多麻烦。我只想让人们在我的网络应用程序的主页上注册时事通讯。我有一个 NewsletterSubscriptionsController,它有一个创建操作,我想用它来存储人们的电子邮件。我还有一个带主页操作的 StaticPagesController。在家庭视图中,我想放置一个允许注册的表格。现在我有这样的东西:
<%= form_for(@newsletter_subscription, url: newsletter_subscriptions_path) 做|f| %> 但我一直收到第一个参数不能为零的错误。
在我的 NewsletterSubscriptionsController 中,我有两种用于新建和创建的方法。
def new
@newsletter_subscription = NewsletterSubscription.new
end
def create
@newsletter_subscription = NewsletterSubscription.new(newsletter_subscription_params)
if @newsletter_subscription.save
redirect to root_url
flash[:success] = "signed up"
else
redirect to root_url
end
我怎样才能让人们可以在 'staticpages#home'
的主页上填写表格
如果您在 create
中调用 .new
时遇到 ArgumentError,则您的参数未成功传递。检查您的表单以确保它以 params[:newsletter_subscription][:email]
的形式发送电子邮件,并确保您的请求发送到路由器中指定的正确位置(确保您已创建到 create
的路由newsletter_subscriptions
.
行动
此外:如果您要从通过其他控制器访问的主页创建新的 NewsletterSubscriptions
,则不需要 NewsletterSubscriptionsController
的 new
操作,因为您的用户已经可以访问主页上的表格。在您描述的上下文中,您的 new
操作未被使用。
我想做的事情很简单,但由于某些原因我遇到了很多麻烦。我只想让人们在我的网络应用程序的主页上注册时事通讯。我有一个 NewsletterSubscriptionsController,它有一个创建操作,我想用它来存储人们的电子邮件。我还有一个带主页操作的 StaticPagesController。在家庭视图中,我想放置一个允许注册的表格。现在我有这样的东西:
<%= form_for(@newsletter_subscription, url: newsletter_subscriptions_path) 做|f| %> 但我一直收到第一个参数不能为零的错误。
在我的 NewsletterSubscriptionsController 中,我有两种用于新建和创建的方法。
def new
@newsletter_subscription = NewsletterSubscription.new
end
def create
@newsletter_subscription = NewsletterSubscription.new(newsletter_subscription_params)
if @newsletter_subscription.save
redirect to root_url
flash[:success] = "signed up"
else
redirect to root_url
end
我怎样才能让人们可以在 'staticpages#home'
的主页上填写表格如果您在 create
中调用 .new
时遇到 ArgumentError,则您的参数未成功传递。检查您的表单以确保它以 params[:newsletter_subscription][:email]
的形式发送电子邮件,并确保您的请求发送到路由器中指定的正确位置(确保您已创建到 create
的路由newsletter_subscriptions
.
此外:如果您要从通过其他控制器访问的主页创建新的 NewsletterSubscriptions
,则不需要 NewsletterSubscriptionsController
的 new
操作,因为您的用户已经可以访问主页上的表格。在您描述的上下文中,您的 new
操作未被使用。