向link_to添加一个类正在打破链接

mta*_*tay 30 ruby-on-rails link-to

我在RoR 3中使用link_to

当我像这样使用它时,它工作正常:

<%= link_to "Add to your favorites list",:controller => 
            'favourite_companies', :action =>'create', 
            :company_id=>"#{@company.id}",   
            :company_name=>"#{@company.company_name}" %>
Run Code Online (Sandbox Code Playgroud)

但我也希望通过课程

但是,这对我不起作用.该课程有效,但它打破了链接.有任何想法吗?

<%= link_to "Add to your favorites list",{:controller => 
            'favourite_companies', :action =>'create'}, 
            :company_id=>"#{@company.id}",   
            :company_name=>"#{@company.company_name}",
            :class=>"ui-button-text button_text"}  %>
Run Code Online (Sandbox Code Playgroud)

edt*_*hix 61

<%= link_to "Add to your favorites list",{:controller => 
            'favourite_companies', :action =>'create'}, 
            :company_id=>"#{@company.id}",   
            :company_name=>"#{@company.company_name}",
            :class=>"ui-button-text button_text"}  %>
Run Code Online (Sandbox Code Playgroud)

试试这个

<%= link_to "Add to your favorites list", :controller => 
            'favourite_companies', :action =>'create', 
            :company_id=>"#{@company.id}",   
            :company_name=>"#{@company.company_name}",
            { :class=>"ui-button-text button_text" }  %>
Run Code Online (Sandbox Code Playgroud)

由于:class应该在:html_options(参考API)

link_to(body, url, html_options = {})
Run Code Online (Sandbox Code Playgroud)


cor*_*ard 32

做你所拥有的正确方法如下:

link_to "Foo", { URL_FOR PARAMS HERE }, :class => "bar"
Run Code Online (Sandbox Code Playgroud)

至于像这样手动设置控制器和动作,嗯,这是废话.Rails为您构建url帮助程序; 使用它们可以节省一些时间,精力并增加清晰度:

link_to "Foo", favourite_companies_path(@company), :method => :post
Run Code Online (Sandbox Code Playgroud)

你正在用字符串插值做的事情也是一个坏主意......它完全没有任何理由浪费和混乱.以下是相同的,只是更好:

link_to "Foo", :company_id => @company.id, :company_name => @company.name
Run Code Online (Sandbox Code Playgroud)

至于你的链接不起作用的原因,如果将它包装在div中,听起来好像你的HTML结构有问题,而不是link_to语法.


Chr*_*ris 8

我正在使用link_to do-end块,因此上述解决方案对我不起作用.

如果要在标记中嵌入其他标记,则可以使用link_to do-end块.

<%= link_to favourite_companies_path(:company_id => @company.id, :another_url_param_here => "bar"), { :class => "ui-button-text button_text", :title=> "We can have more html attributes as well" } do %>
  <i class="fa fa-star"></i>
  <%= @company.company_name %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

在这种情况下它是

<%= link_to path(url_params), html_options = {} do %>
<% end %>
Run Code Online (Sandbox Code Playgroud)