从Rails 3.0的无关视图创建模型

问题描述

| 我正在尝试做一些相当简单的事情,但是我不确定使用rails的方法。最简单的是,我有一个索引页面,您可以在其中注册邮件列表。 我正在尝试进行设置,以便您可以将自己从索引页面添加到邮件列表中,而不会看到邮件列表视图。我可以使用以下方法正确提交数据:
= form_for @mailing_list,:remote => true do |form| 
= if @mailing_list.errors.any?
  %ul
  = @mailing_list.errors.full_messages.each do |message| 
    %li
      = message
.field
  = form.label :email,\'Your email\'
  = form.text_field :email
= form.submit \"Add to Mailing List\"
使用控制器:
def create
  @mailing_list = MailingList.new(params[:mailing_list])
  if @mailing_list.save
    redirect_to(:root,:notice => \'Mailing list was successfully created.\') 
  else
    ? How do I return the errors ?
  end
end
但是我无法找回错误(例如,电子邮件无效等)。有没有更好的方法来做我正在尝试的事情?我只希望能够从索引页面视图调用并响应MailingList控制器的操作...     

解决方法

        我相信您想要一种可以在不离开该页面的情况下将某人添加到邮件列表的表单。 更好?嗯..好吧,我告诉你我做什么,你可以决定自己喜欢什么。 我将在控制器中使用ѭ2来区分标准html调用和远程js调用。然后,我将处理视图中的页面更改。我喜欢将显示保持在视图中。 控制器:
def create
    @mailing_list = MailingList.new(params[:mailing_list])
    if @mailing_list.save
        respond_to do |format|
            format.html { redirect_to(:root,:notice => \'Mailing list was successfully created.\') }
            format.js { render }    
        end 
    else
        respond_to do |format|
            format.html { render }
            format.js { render :errors }
        end
    end
end
create.js.erb
$(\'#errors\').html(\'\').hide();
$(\'form\').html(\'Mailing list was successfully created.\'); // needs a better element
errors.js.erb
$(\'#errors\').html(\'<%= escape_javascript(@mailing_list.errors.full_messages.collect { |msg| content_tag :li,msg }.join().html_safe) %>\').show();
    ,        您可以对@mailing_list上的错误对象执行某些操作,例如
flash.now[:error] = @mailing_list.errors.full_messages
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...