5

new.html.erb在我的 Rails 3.2 项目中,我有一个表单可以在其中创建一个新站点app/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 %>

然后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

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

You just put in <%= params[:hash_name] %>.

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

4

2 回答 2

4

只需将它们附加到选项中:

redirect_to @site, :hash_name => 参数[:hash_name]

于 2012-10-11T01:38:32.267 回答
4

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

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

于 2012-10-11T01:51:11.277 回答