rails用锚点渲染动作

时间:2014-01-03 17:38:30

标签: ruby-on-rails-4 anchor render simple-form

我有一个带有simple_form gem的表单。如果我使用锚标记对浏览器中的网址进行数字处理:

localhost:3000/contacts/#new_contact #show me the correct form in the page

这是我的控制者:

class ContactsController < ApplicationController

  def index
    @message = Contact.new()
  end

  def create

    @message = Contact.new(msg_params)
    @message.request = request
    if @message.deliver
      redirect_to contacts_path , flash: { success: 'Ok' }
    else
      render action: :index #how can i render the new_contact anchor??
    end

  rescue   ScriptError
    redirect_to contacts_path , flash: { error: 'spam' }
  end

  private
  def msg_params
    params.require(:contact).permit(:name,:email,:message,:spam)
  end
end

这是我的表格:

<%= simple_form_for @message, defaults: { label: false} do |f| %>
    <%= f.input :name %>
    <%= f.input :email %>
    <%= f.input :message, :as => :text,input_html: { rows: 7 } %>

    <div class="hidden">
      <%= f.input :spam, :hint => 'Leave this field blank!' %>
    </div>

    <%= f.button :submit, 'Send', class: 'btn-block btn-success btn-lg' %>

<% end %>

如何使用render方法显示new_contact锚点?

1 个答案:

答案 0 :(得分:1)

您无法使用render修改锚标记。实际上,render与URI没有任何关系。

您可以使用现有链接链接到“/ url#anchor”,重定向,或使用javascript来达到同样的效果。

如果未在表单上设置锚本身,您可能还需要添加:id => 'anchor'