我正在构建新闻稿管理表单,我想使用simple_form。 email
参数应通过POST
方法发送到email_subscriber#manage
控制器/操作。如何使用simple_form向控制器发送任意参数
的routes.rb
get 'email/login' => 'email_subscribers#login', as: 'email_login'
get 'email/manage' => 'email_subscribers#manage', as: 'email_manage'
email_subscribers_controller.rb
def login
end
def manage
@subscriber = EmailSubscriber.find_by_email(safe_params(:email))
unless @subscriber
# redirect_to email_login_path, notice: 'That email does not exist.'
end
end
电子邮件/登录表单
<%= render :layout => 'application/container' do %>
<%= simple_form_for(@subscriber, path: :email_manage_path, method: :get) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :email, as: :email %>
</div>
<div class="form-actions">
<%= f.button :submit, value: 'Manage Subscription' %>
</div>
<% end %>
登录路径是表单所在的位置。它允许用户输入他们的电子邮件,以退订电子报。
表单应重定向到manage
操作,传递没有对应模型的参数email
。
当前表单不起作用。由于某种原因,它重定向到EmailSubscribers
索引页面。 改变email_manage
路线POST
导致missing route POST email/login
这是没有意义的,因为形式张贴到email_manage_path
,而不是email_login_path
感谢
编辑:
耙路输出(在此同一选项卡中打开)
你可以发表你的路线? '耙路线' –
添加了一个完整的'rake routes'输出的pastebin – danielbker