Rails:form_for在应用程序范围内的页脚

时间:2016-11-19 20:27:06

标签: ruby-on-rails-5

我开始学习Rails大约一个月了,我正在开展一个相当简单的项目来提高我的技能。这是一个博客,编辑可以添加文章,用户可以通过添加他们的电子邮件订阅时事通讯。主页是一个索引视图,它们是一个显示在所有页面上的页脚。

这是我的问题:我想在应用程序布局中存在的页脚上包含form_for新闻稿。该表单有一个特定的模型:Subscriber,用于存储用户的电子邮件。

到目前为止我所做的是在文章控制器上包括以下内容:

def index 
  @articles = Article.order(created_at: :desc).all  
  @subscriber = Subscriber.new 
end 

def create 
  @subscriber = Subscriber.new(subscriber_params)
  if @subscriber.save 
    redirect_to '/home'
  else 
    render 'new'
  end 
end

def subscriber_params 
  params.require(:subscriber).permit(:email) 
end

在application.html.erb中:

<%= form_for(@subscriber) do |f| %> 
  <%= f.email_field :email, :placeholder => "email address" %> 
  <%= f.submit 'Sign up', :id => "signup" %> 
<% end %>

表单仅在索引页面上正确显示,并且不会保存到数据库中(没有错误)。

我尝试在应用程序控制器上使用前置过滤器以及渲染局部过滤器而没有任何成功。

编辑

订户控制器代码:

def new 
@subscriber = Subscriber.new 
end 

def create 
  @subscriber = Subscriber.new(subscriber_params)
  if @subscriber.save 
    redirect_to '/home'
  else 
    render 'new'
  end 
end

private 
def subscriber_params 
    params.require(:subscriber).permit(:email) 
end

应用程序控制器:

before_action :create_new_subscriber 

def create_new_subscriber
  @subscriber = Subscriber.new 
end 

0 个答案:

没有答案