繁体   English   中英

Rails设计基于动作的gem部分表单提交按钮文本值

Rails devise gem partial form submit button text value based on action

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我创建了一个部分表单,用于注册新用户或编辑用户。 问题在于提交按钮的文本值。 如何正确检查用户是否正在创建或编辑表单,因此按钮文本值可以为“注册”或“更新”

我正在使用

Ruby 2.1.5
Rails 4
Devise gem

这是我的表格:

<%= form_for(resource, as: resource_name, url: registration_path(resource_name))  do |f| %>
    <%= devise_error_messages! %>

    <div class="form-group">
      <%= f.label :email, class: 'control-label' %>*<br />
      <%= f.email_field :email, autofocus: true, class: 'form-control' %>
      <span class="help-block"></span>
    </div>

    <div class="form-group">
      <%= f.label :username, class: 'control-label' %>*<br />
      <%= f.text_field :username, class: 'form-control' %>
      <span class="help-block"></span>
    </div>

    <div class="form-group">
      <%= f.label :password, class: 'control-label' %>*
      <% if @validatable %>
          <em>(<%= @minimum_password_length %> characters minimum)</em>
      <% end %><br />
      <%= f.password_field :password, autocomplete: 'off', class: 'form-control' %>
      <span class="help-block"></span>
    </div>

    <div class="form-group">
      <%= f.label :password_confirmation, class: 'control-label' %>*<br />
      <%= f.password_field :password_confirmation, autocomplete: 'off', class: 'form-control' %>
      <span class="help-block"></span>
    </div>

    <hr>

    <div class="form-group">
      <%= f.label :name, class: 'control-label' %>*<br />
      <%= f.text_field :name, autocomplete: 'on', class: 'form-control' %>
      <span class="help-block"></span>
    </div>

    <div class="form-group">
      <%= f.label :last_name, class: 'control-label' %>*<br />
      <%= f.text_field :last_name, autocomplete: 'on', class: 'form-control' %>
      <span class="help-block"></span>
    </div>
    <div class="form-group">
      <%= f.label :address, class: 'control-label' %>*<br />
      <%= f.text_field :address, autocomplete: 'on', class: 'form-control' %>
      <span class="help-block"></span>
    </div>
    <div class="form-group">
      <%= f.label :post_number, class: 'control-label' %>*<br />
      <%= f.text_field :post_number, autocomplete: 'on', class: 'form-control' %>
      <span class="help-block"></span>
    </div>
    <div class="form-group">
      <%= f.label :city, class: 'control-label' %>*<br />
      <%= f.text_field :city, autocomplete: 'on', class: 'form-control' %>
      <span class="help-block"></span>
    </div>
    <div class="form-group">
      <%= f.label :mobile, class: 'control-label' %>*<br />
      <%= f.text_field :mobile, autocomplete: 'on', class: 'form-control' %>
      <span class="help-block"></span>
    </div>
    <div>
      <%= f.label :country_id, class: 'control-label' %><br />
      <%= f.select(:country_id, options_from_collection_for_select(Country.all, :id, :name), {}, { :class => 'form-control'}) %>
      <span class="help-block"></span>
    </div>
    <br>
    <div class="actions">
      <%= f.submit 'Sign up', class: 'btn btn-default' %>
    </div>
<% end %>

所以我想检查这是否将是新记录,或者用户只是像以下示例一样编辑记录:

<%= f.submit @user.new_record? ? 'Sign up' : 'Update', class: 'btn btn-default' %>
2 个回复

我认为您的做法正确。 您还可以检查当前操作以选择按钮的名称:

<%= f.submit "#{['edit', 'update'].include? params[:action] ? 'Update' : 'Sign up'}", class: 'btn btn-default' %>

编辑

您实际上可以将其保留为<%= f.submit class: 'btn btn-default' %> ,Rails会知道它是什么操作,然后将Submit称为'Create User''Update User'

我发现了该怎么做。 您只是简单地调用resource.new_record?

  <%= f.submit resource.new_record? ? 'Sign up' : 'Update', class: 'btn btn-default' %>
1 Rails 3 - 表单,自定义提交按钮基于动作?

我目前有几种形式,我正在尝试更改提交它的按钮,如果我正在编辑或新操作。 我创建了两个表单但是这个表面很糟糕,我现在只使用单个表单部分。 在我的部分结束时,我在表格的末尾有这样的东西: 这样,如果我创建一些新的,按钮显示“Create”,如果它是用户试图完成的更新,则按钮显示“Up ...

3 更改每个表单的提交按钮文本值

我正在几个不同的页面上渲染表单,例如: edit, new, show 。 现在,在“提交”按钮上显示: "update post"和"create post" 。 我知道有一种方法可以向按钮&lt;%= f.submit "Text" %&gt;添加自定义文本。 但是因为我正在渲染表单, ...

4 Rails渲染子动作gem

这是我的Rails问题。 有时,页面上存在独立的块(例如“最新新闻”),这些块与当前的控制器或动作没有逻辑关系。 在常规的MVC堆栈中,我将在控制器中编写@news = News.latest并render 'shared/latest_news', news: @news 。 但是, ...

5 表单操作根据单击的提交按钮传递正确的文本值

我的代码是 现在我想要的是,如果我单击Submit1 p1.php应该打开,那么我只能访问text1的值,而不能访问text2的值。 同样,如果我单击Submit2,则p2.php应该打开,我只能访问text2的值,而不能访问text1。 页面正在打开,但我可以访问两个值,即 ...

8 提交表单后更改提交按钮的文本?

我有一个电子邮件注册表单,并希望在发送表单时将“提交”按钮从“提交”更改为“谢谢”。 正在挖掘并且无法找到解决方案。 我在这里使用MailChimp的简单订阅: http : //apidocs.mailchimp.com/downloads/mcapi-simple-subscrib ...

9 rails设计动作未知

希望有人可以帮助我,我的应用程序工作正常。 我可以登录注册并按照它的意思使用所有内容除外。 当我打开应用程序并登录时,我可以查看该网站的主页面。 但是,如果我进入设计登录或注册页面,然后在登录之前单击主页面的链接,则会出现错误说明 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM