我想做的事情非常简单,但出于某种原因,我遇到了很多麻烦。我想要的是允许人们在我的网络应用程序的主页上注册简报。我有一个NewsletterSubscriptionsController,它有一个我想用来存储人们电子邮件的创建动作。我还有一个带有主动作的StaticPagesController。在家庭观点中,我想提出一个允许注册的表格。现在我有这样的事情:
<%= form_for(@ newsletter_subscription,url:newsletter_subscriptions_path)do | f | %GT;但我不断得到第一个参数不能是零错误。
在我的NewsletterSubscriptionsController中,我有两种new和create方法。
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

我该如何制作,以便人们可以在主页上填写表格,这是“静态页面#home'
答案 0 :(得分:0)
如果您在.new
中呼叫create
时收到ArgumentError,则表示您的参数未成功通过。检查您的表单,确保它以params[:newsletter_subscription][:email]
的形式发送电子邮件,并确保您的请求到达路由器中指定的正确位置(确保您已创建路由到create
的{{1}}操作。
另外:如果您从通过其他控制器访问的主页创建新的newsletter_subscriptions
,则不需要对NewsletterSubscriptions
进行new
操作,因为用户已经可以访问主页上的表单。在您描述的上下文中,您的NewsletterSubscriptionsController
操作未被使用。