Rails:表单提交后在视图中访问参数

Pau*_* S. 5 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

在我的 Rails 3.2 项目中,我有一个表单可以new.html.erbapp/views/sites/

<%= form_for(@site) do |site_form| %>
  ...
  <div class="field">
    <%= site_form.label :hash_name %><br />
    <%= site_form.text_field :hash_name %>
  </div>
  ...
  <div class="actions">
    <%= site_form.submit %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

然后create函数在sites_controller.rb

def create
  @site = Site.new(params[:site])

  respond_to do |format|
    if @site.save
      format.html { redirect_to @site }
    else
      format.html { render action: "new" }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

然后在用户提交后,我想显示hash_name用户刚刚提交的,在show.html.erb

You just put in <%= params[:hash_name] %>.
Run Code Online (Sandbox Code Playgroud)

但是访问params[:hash_name]不起作用。我怎样才能访问它?

sev*_*cat 4

您正在重定向到不同的操作 - 这将重置您传递给创建操作的所有参数。

要么hash_name像其他答案建议的那样作为参数传递,要么直接从@site对象中获取它。