【问题标题】:Rails 3.2 ajax example with params in controller控制器中带有参数的 Rails 3.2 ajax 示例
【发布时间】:2012-10-10 11:44:58
【问题描述】:

如何在下一个示例中创建 ajax:

在控制器中:

def index
    if params[:p] == "one"
        @record = "Hello, 1!"
    elsif params[:p] == "two"
        @record = "Hello, 2!"
    else
        @record = "something else"
    end
end

在视图中(hellos 控制器,索引操作):

<%= link_to "One", hellos_path(:p => "one") %>
<%= link_to "Two", hellos_path(:p => "two") %>
<%= render :partial => 'record' %>

部分_record.html.erb:

<%= @record %>

就是这样。索引控制器中的所有操作和只有参数都在变化。我不想重新加载整页 - 只使用新的控制器变量记录部分内容。

如何“AJAXize”呢? :)

【问题讨论】:

    标签: ruby-on-rails ajax ruby-on-rails-3 jquery


    【解决方案1】:

    1- 将 :remote => true 添加到您的链接:

    <%= link_to "One", hellos_path(:p => "one"), :remote => true %>
    

    2- 创建一个视图 index.js.erb :

    $("#your_div").html("<%= render :partial => "record" %>")
    

    3- 在 index.html.erb 中创建一个 id 为 your_div 的 div。这个 div 将被 @record 对象填充。

    【讨论】:

    • 在第三步中,我是否需要添加类似&lt;div id="your_div"&gt;&lt;/div&gt; 的内容并从视图中删除&lt;%= render :partial =&gt; 'record' %&gt;
    • 你需要像你说的那样创建 div。是否要保留部分渲染由您自己决定,以便默认索引页面显示它。
    • 是的,但是当我点击链接时,我得到“Completed 200 OK”,但它不存在于浏览器中:(
    • $("#your_div").html("&lt;%= j render ("record") %&gt;") 这对我有用! :) tnx )
    • 好的,它正在渲染,但没有参数 :( 如果我在索引页面并点击“一个”链接,我会从我的控制器@record =“其他东西”得到这个 :(
    猜你喜欢
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多