如何将参数从视图传递到控制器

时间:2013-07-16 20:03:43

标签: ruby-on-rails parameter-passing

我在轨道上的ruby中有一个应用程序,其中有一些参数显示在屏幕上。

 <%= link_to l(:label_statistics),
            {:action => 'stats', :id => @project, :repository_id => @repository.identifier_param},
            :class => 'icon icon-stats' if @repository.supports_all_revisions? %>

我想抓住变量@repository.name并在我控制器中的函数中使用它。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

在您的统计数据操作中,假设您有一个存储库模型,并且数据库中存在包含名称的记录。

@repository = Repository.find(params[:repository_id])
@repository.name

如果没有,您可以将其与其他所有内容一起传递,

<%= link_to l(:label_statistics),
    {:action => 'stats', 
    :id => @project,
    :repository_id => @repository.identifier_param,
    :repository_name => @repository.name},
    :class => 'icon icon-stats' if @repository.supports_all_revisions? %>

然后在控制器中,通过params[:repository_name]

访问它

答案 1 :(得分:0)

只需传递参数即可。 Doc for li_to

link_to can also produce links with anchors or query strings:

link_to "Comment wall", profile_path(@profile, :anchor => "wall") # => <a href="/profiles/1#wall">Comment wall</a>

link_to "Ruby on Rails search", :controller => "searches", :query => "ruby on rails" # => <a href="/searches?query=ruby+on+rails">Ruby on Rails search</a>

link_to "Nonsense search", searches_path(:foo => "bar", :baz => "quux") # => <a href="/searches?foo=bar&amp;baz=quux">Nonsense search</a>