为什么不是';t Ruby-on-Rails正确地生成';通知';HTML?

为什么不是';t Ruby-on-Rails正确地生成';通知';HTML?,ruby-on-rails,notifications,query-string,Ruby On Rails,Notifications,Query String,在我看来,嵌入的ruby代码是 <p id="notice"><%= notice %></p> 生成的HTML是 <p id="notice"></p> 非常感谢 尝试在控制器中使用以下内容分配值 @notice_text = params[:notice] <p id="notice><%= @notice_text %></p> 然后你可以使用类似 @notice_text = para

在我看来,嵌入的ruby代码是

<p id="notice"><%= notice %></p>
生成的HTML是

<p id="notice"></p>

非常感谢

尝试在控制器中使用以下内容分配值

@notice_text = params[:notice]
<p id="notice><%= @notice_text %></p>
然后你可以使用类似

@notice_text = params[:notice]
<p id="notice><%= @notice_text %></p>

尝试在控制器中使用以下内容分配值

@notice_text = params[:notice]
<p id="notice><%= @notice_text %></p>
然后你可以使用类似

@notice_text = params[:notice]
<p id="notice><%= @notice_text %></p>

您的代码不工作,因为“通知”便利方法使用闪存,而您希望显示参数,而不是闪存。尝试先将通知分配给flash变量,然后再重定向,而不是在参数中执行重定向和分配通知

if @project.save
  flash[:notice] = 'Project was successfully created'
  redirect_to project_path(@project)
end

您的代码不起作用,因为“notice”便利方法使用flash,而您希望显示参数,而不是flash。尝试先将通知分配给flash变量,然后再重定向,而不是在参数中执行重定向和分配通知

if @project.save
  flash[:notice] = 'Project was successfully created'
  redirect_to project_path(@project)
end

我和BeachRunnerJoe的经历完全一样,在这里找到了答案。因为我不喜欢,所以我自己做了一些研究。我知道这个问题/答案已经有一年多的历史了。尽管如此,我想我还是会发布一个迟到的答案

以下几点对我很有用:

redirect_to( { :action => "show", :id => @project }, { :notice => 'Project was successfully created.' } )
redirect\u to方法有两个参数:options和*response\u status*。如果没有额外的{},Ruby将所有参数解释为属于选项,因此在URL的选项中包含:notice散列

希望这有帮助


彼得

我的经历和比克伦纳乔完全一样,我在这里找到了答案。因为我不喜欢,所以我自己做了一些研究。我知道这个问题/答案已经有一年多的历史了。尽管如此,我想我还是会发布一个迟到的答案

以下几点对我很有用:

redirect_to( { :action => "show", :id => @project }, { :notice => 'Project was successfully created.' } )
redirect\u to方法有两个参数:options和*response\u status*。如果没有额外的{},Ruby将所有参数解释为属于选项,因此在URL的选项中包含:notice散列

希望这有帮助


彼得

我不明白,“通知”便利法有什么意义?如果我使用:notice=>“Article was successfully created.”设置通知。在我的控制器中,“”不应该显示它吗?flash[]散列实际上有所不同。您也可以从控制器分配给它。您可能想看看这篇关于“Rails中有用的flash消息”的帖子——谢谢,Joe,我感谢您的帮助。我想我要问的是,我的代码不应该为我要做的工作工作吗?嗯,这要看情况而定。在视图中,“notice”没有任何意义,即使您试图从控制器为其分配某些内容。在这个意义上,提供给视图的flash散列是特殊的。传递到视图中的其他内容需要使用“@”前缀;因此出现了“@notice_text”。因此,只要将参数[]散列中的URL querystring值分配给控制器中的某个对象(无论是flash[]散列还是示例中的“@notice_text”之类的变量),就可以在视图中获取它。我们没有看到你的控制器代码,所以我不能说它是否完全正确…我不明白,“通知”便利方法的意义是什么?如果我使用:notice=>“Article was successfully created.”设置通知。在我的控制器中,“”不应该显示它吗?flash[]散列实际上有所不同。您也可以从控制器分配给它。您可能想看看这篇关于“Rails中有用的flash消息”的帖子——谢谢,Joe,我感谢您的帮助。我想我要问的是,我的代码不应该为我要做的工作工作吗?嗯,这要看情况而定。在视图中,“notice”没有任何意义,即使您试图从控制器为其分配某些内容。在这个意义上,提供给视图的flash散列是特殊的。传递到视图中的其他内容需要使用“@”前缀;因此出现了“@notice_text”。因此,只要将参数[]散列中的URL querystring值分配给控制器中的某个对象(无论是flash[]散列还是示例中的“@notice_text”之类的变量),就可以在视图中获取它。我们没有看到你的控制器代码,所以我不能说它是否完全正确…我只是用我的控制器代码更新了我的问题,这样行吗?再次感谢!不,这不起作用,因为您正在重定向调用中传递
:notice=>“Project…”
,它在params散列中传递notice变量(作为url中的get变量)。您需要在flash中指定notice变量。试试这个:
format.html{flash[:notice]='project success'并重定向到(:action=>:show,:id=>@project.id)}
我刚刚用我的控制器代码更新了我的问题,这样行吗?再次感谢!不,这不起作用,因为您正在重定向调用中传递
:notice=>“Project…”
,它在params散列中传递notice变量(作为url中的get变量)。您需要在flash中指定notice变量。尝试以下操作:
format.html{flash[:notice]='project success'并将_重定向到(:action=>:show,:id=>@project.id)}