Ruby on rails Rails:资源和表单

Ruby on rails Rails:资源和表单,ruby-on-rails,view,resources,devise,Ruby On Rails,View,Resources,Devise,前言:我不确定资源是什么 我需要这个表单(从user/sign\u-uproute开始工作)来处理我的“离线页面”——这样当我的应用程序关闭时,用户仍然可以注册。我的应用程序控制器调用一个:filter\u before,:except=>[:offline]并且我的注册控制器在执行操作之前有一个:skip\u filter\u。(这叫行动吗?) 这将取决于registration\u path的配置,即您在路线中定义但此处未解释的内容 还要检查rake routes的输出,以查看它在您的环境中

前言:我不确定资源是什么

我需要这个表单(从
user/sign\u-up
route开始工作)来处理我的“离线页面”——这样当我的应用程序关闭时,用户仍然可以注册。我的应用程序控制器调用一个
:filter\u before,:except=>[:offline]
并且我的注册控制器在执行操作之前有一个
:skip\u filter\u。(这叫行动吗?)


这将取决于
registration\u path
的配置,即您在路线中定义但此处未解释的内容

还要检查
rake routes
的输出,以查看它在您的环境中是如何解释的。谨慎的做法是检查
log/development.log
,查看在显示解释的
params
时表单提交是如何处理的


至于什么是
资源
,它是来自Desive还是您的应用程序?

这将取决于
注册路径
配置为什么,您在路由中定义了什么,但在这里没有解释

还要检查
rake routes
的输出,以查看它在您的环境中是如何解释的。谨慎的做法是检查
log/development.log
,查看在显示解释的
params
时表单提交是如何处理的


至于什么是
资源
,它是来自designe还是您的应用程序?

designe的“资源”是实际注册的资源。在您的情况下,它很可能是一个用户。然而,用户并没有硬编码到Desive中,所以您可以拥有多种类型的用户,例如管理员或编辑器。为了简单起见,在本例中,当您阅读“资源”时,请考虑“用户”

我的回答的其余部分并不是真正的答案,只是要求提供更多细节。如果我能提供帮助,我将用正确的答案编辑此内容:)

至于你的问题,我不是100%肯定我理解你在问什么。您是尝试在脱机页面上显示注册表,还是尝试将注册表数据发送到脱机页面?在这两种情况下,您是否收到了错误信息或类似信息,从而阻止您这样做?如果是,请发布错误或意外行为的详细信息。根据您的问题所在,发布routes.rb可能也会有所帮助

还有一件事我不清楚,离线页面是rails应用程序的一部分还是托管在其他地方?如果应用程序已关闭,则无法访问

更新:

所以我的理解是你想把用户注册表放到离线页面上?如果是这样,试试这个

在控制器中:

class RegistrationsController < Devise::RegistrationsController
  before_filter :get_teams
  skip_filter :require_online
  def create
    build_resource

    if resource.save
      if resource.active_for_authentication?
        set_flash_message :notice, :signed_up if is_navigational_format?
        respond_with resource, :location => redirect_location(resource_name, resource)
      else
        set_flash_message :notice, :inactive_signed_up, :reason => resource.inactive_message.to_s if is_navigational_format?
        expire_session_data_after_sign_in!
        respond_with resource, :location => after_inactive_sign_up_path_for(resource)
      end
    else
      clean_up_passwords(resource)
      respond_with_navigational(resource) { render_with_scope :new }
    end
  end
  ...
end
def offline
  @user = User.new
end
在offline.html.erb视图中:

    <%= form_for(@user, :url => user_registration_path) do |f| %>
      <%= devise_error_messages! %>

      <p><%= f.label :email %><br />
      <%= f.email_field :email %></p>
      <p><%= f.submit "Sign up" %></p>
    <% end %>
其中
welcome
是脱机操作所在控制器的名称


这有什么帮助吗?

对于Deave来说,“资源”就是实际注册的资源。在您的情况下,它很可能是一个用户。然而,用户并没有硬编码到Desive中,所以您可以拥有多种类型的用户,例如管理员或编辑器。为了简单起见,在本例中,当您阅读“资源”时,请考虑“用户”

我的回答的其余部分并不是真正的答案,只是要求提供更多细节。如果我能提供帮助,我将用正确的答案编辑此内容:)

至于你的问题,我不是100%肯定我理解你在问什么。您是尝试在脱机页面上显示注册表,还是尝试将注册表数据发送到脱机页面?在这两种情况下,您是否收到了错误信息或类似信息,从而阻止您这样做?如果是,请发布错误或意外行为的详细信息。根据您的问题所在,发布routes.rb可能也会有所帮助

还有一件事我不清楚,离线页面是rails应用程序的一部分还是托管在其他地方?如果应用程序已关闭,则无法访问

更新:

所以我的理解是你想把用户注册表放到离线页面上?如果是这样,试试这个

在控制器中:

class RegistrationsController < Devise::RegistrationsController
  before_filter :get_teams
  skip_filter :require_online
  def create
    build_resource

    if resource.save
      if resource.active_for_authentication?
        set_flash_message :notice, :signed_up if is_navigational_format?
        respond_with resource, :location => redirect_location(resource_name, resource)
      else
        set_flash_message :notice, :inactive_signed_up, :reason => resource.inactive_message.to_s if is_navigational_format?
        expire_session_data_after_sign_in!
        respond_with resource, :location => after_inactive_sign_up_path_for(resource)
      end
    else
      clean_up_passwords(resource)
      respond_with_navigational(resource) { render_with_scope :new }
    end
  end
  ...
end
def offline
  @user = User.new
end
在offline.html.erb视图中:

    <%= form_for(@user, :url => user_registration_path) do |f| %>
      <%= devise_error_messages! %>

      <p><%= f.label :email %><br />
      <%= f.email_field :email %></p>
      <p><%= f.submit "Sign up" %></p>
    <% end %>
其中
welcome
是脱机操作所在控制器的名称


这有帮助吗?

“操作”通常指控制器上的公共方法
before\u filter
设置是过滤器,而
skip\u before\u filter
会调整这些设置。谢谢,塔德曼。你知道我在问什么吗?我猜该应用程序要么不知道提交表单时如何发送表单,要么找不到资源……但是,我对rails/编程还是新手。任何想法?“行动”通常指控制器上的公共方法
before\u filter
设置是过滤器,而
skip\u before\u filter
会调整这些设置。谢谢,塔德曼。你知道我在问什么吗?我猜该应用程序要么不知道提交表单时如何发送表单,要么找不到资源……但是,我对rails/编程还是新手。有什么想法吗?我很确定那是设计。谷歌返回的大多是设计文章。我知道我可能需要修正我的路线才能正常工作,但我也需要弄清楚资源的问题,对吗?塔德曼,我感谢你的支持。然而,我仍然很困惑——我应该在几天前完成这项工作,这是唯一让我感到困惑的事情。如果可以的话,请你把你的答案再扩展一点好吗?你可以试着用
design
重新标记这个问题,如果重要的话,你可以提供奖励。我不太熟悉Desive的内部结构,也不太清楚到底发生了什么。我很确定这就是Desive。谷歌返回的大多是设计文章。我知道我可能需要修正我的路线才能正常工作,但我也需要弄清楚资源的问题,对吗?塔德曼,我感谢你的支持。然而,我仍然很困惑——我本应该