ruby-on-rails - Ruby on Rails 3 : Trying to render a view from a different controller. 但我得到了同一个 Controller

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2

在我的应用程序中,我创建了一个表单来创建新帖子(帖子是一个模型)。我有一个名为 posts 的 Controller 。该表单位于管理员 Controller 中。表单使用 form_for(@post)。它发布到帖子 Controller 。在这种方法中,帖子创建成功。但问题在于提交失败。在表单中,我添加了显示错误的代码

    <% if @post.errors.any? %>
        <div id="error_explanation">
            <div class="alert alert-error">
                The form contains <%= pluralize(@post.errors.count, "error") %>
            </div>
            <ul>
                <% @post.errors.full_messages.each do |msg| %>
                    <li> <%= msg %> </li>
                <% end %>
            </ul>
        </div>
    <% end %>

但是在帖子 Controller 中,如果提交失败,我将其设置为 redirect_to 管理员 Controller 中的新帖子页面。重定向时,我会丢失错误消息。

所以,我加了

render 'dasharea/newpost'

localhost:3000/dasharea/newpost 是具有表单的页面的 URL。使用这段代码,它说

Missing template dasharea/newpost with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}.

但是我已经在那个页面了?然后我尝试像这样添加 Controller 和 Action (注意:我正在编辑帖子 Controller 的创建 Action 。我需要在管理员 Controller 中呈现新帖子 Action ):

render 'admins/newpost'

然后,它将引导我到帖子:

http://localhost:3000/posts

但现在,表格已经存在,我可以看到错误。但是我需要呈现我有表格(dasharea/newpost)的原始页面!我怎样才能做到这一点?我做错了什么?

最佳答案

我的解决方案:AJAX 表单。没有更多的问题。使用 javascript 现场更新表单。如果需要,您甚至可以使用 window.location.href = '/your-url' 进行重定向。

如果你需要处理 html 请求,你总是可以将你的表单指向你选择的 url:

form_for @post, url: route_to_current_controller

处理此 Controller 上的 create_post 操作,并确保您的路由设置正确。不利的一面是您将在与 PostsController 不同的 Controller 中处理帖子创建。

关于ruby-on-rails - Ruby on Rails 3 : Trying to render a view from a different controller. 但我得到了同一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14426122/

相关文章:

ruby-on-rails - Ruby on Rails 与 Plupload

javascript - 关于 'application.js'文件的一些问题

ruby - 方法和变量名相同

ruby - 冒号(:) appears as forward slash (/) when creating file name

ruby-on-rails - 解析 gemfile 并获取 rails 项目中使用的所有 gem

ruby-on-rails - rails 脚本/服务器不启动服务器

ruby-on-rails - 在 Ruby 中访问方法内容而不执行它

ruby-on-rails - Rails 应用程序的常见用法?

ruby-on-rails-3 - Rails 3 Coffee Handler丢失

ruby-on-rails - Ruby 哈希值遍历和更改值不起作用