2012-08-09 52 views
0

我有一个视图使用link_to将参数传递给控制器​​。该网址是一个变量。有些东西不起作用。我会欣赏任何线索。谢谢!link_to无法使用变量url

<% url1 = dialogs_path(@dialogId) %> 
<%= url1 %> 
<%= link_to "Go!", url1(:uid1 => @uid1, :uid2 => @uid2), :id => "my_link" %> 

url1正确显示。但是,执行link_to崩溃。

+0

“崩溃”是什么意思?看到某种堆栈跟踪或错误消息会有所帮助。 – BaronVonBraun 2012-08-09 01:49:48

+0

谢谢@BaronVonBraun!我在做这个工作。当包含link_to语句的页面被渲染时,我得到“我们很抱歉,但出了问题”。 – user1388066 2012-08-09 02:29:06

回答

0

您应该使用dialog_path(@dialogId)来代替。

你正在试图查看一个特定的对象,它是单数,什么轨道期望。 看看这里: http://guides.rubyonrails.org/routing.html#paths-and-urls

您使用URL混淆了我的方式,尝试这样的事情:

<%= link_to "Go!", dialog_path(@dialogId, :uid1 => @uid1, :uid2 => @uid2), :id => "my_link" %> 
+0

感谢@Anthony的帮助!我纠正了这一点。我还注意到,我有一个拼写错误的“url”而不是“url1”,我纠正了这一点,但那也不起作用。我仍在调试。再次感谢! – user1388066 2012-08-09 02:26:15

+0

编辑,尝试我的回答中的语法 – 2012-08-09 02:28:38

+0

我没有使用dialog_path(@dialogId)。谢谢@Anthony! – user1388066 2012-08-09 02:30:20

0

的为url1应定义为:

<% url1 = dialogs_path(@dialogId)+'?uid1=' + @uid1 + '&uid2=' + @uid2% , :id => "my_link" %> 

而且的link_to应成为:

<%= link_to "Go!", url1, :id => "my_link" %> 
+0

很不好意思的做法,你应该可以使用'dialog_path'助手来添加额外的参数 – 2012-08-09 11:11:10

+0

谢谢@AnthonyAlberto的帮助!但是,你会建议什么? – user1388066 2012-08-09 15:11:08

+0

'dialog_path(@dialogId,:uid1 => @ uid1,:uid2 => @ uid2)'。如果它不起作用,请给出错误信息或错误的链接 – 2012-08-09 15:22:31