Rails 4 - 链接回形式而不重新加载

时间:2015-07-31 16:34:04

标签: ruby-on-rails ajax

Rails新手在这里......请善待......

我有一个应用程序,可以生成一个独特的文本段落(从数组中采样,并根据_form.html.erb中输入的条件使其唯一,从条件/新页面呈现)。在条件/显示页面上,我有2个链接,一个使用相同的标准生成一个新的唯一段落,另一个返回到表单并编辑标准。

对于第二个链接,我想保留先前输入的条件,因为用户可能只想更改一个条目而不必重新输入所有条目。我找到了很多关于ajax调用的信息,respond_to,remote:true,但是没有找到这个确切的答案,或者如果我有,我的大脑是TIRED并且无法理解。

我在类似的问题(How to come back to form without reset the values?)中看到了关于重新填充数据的建议:“只需将参数(/ myForm?param1 = 1& param2 = 2& param3 = 3)添加到按钮url返回搜索表单。然后使用参数填充字段。不需要使用会话变量。“可悲的是,我不清楚如何实现这一点。

有人请非常友好地指导我(最好是最简单!)这样做的方式吗?

显示页面上的当前链接(评论的内容是我尝试失败的内容:

<%= link_to 'Generate Another!', criteria_path %> #regenerates text with current criteria
<%= link_to 'Enter New Information', new_criterium_path %> #this is the link I'm trying to change
<%#= link_to 'Enter New Information', new_criterium_path, :remote => true %>
<%#= link_to 'Enter New Information', { :controller => 'Criteria', :action => "new" } :remote => true %>

控制器新动作(注释直到我可以使其工作):

def new
@criterium = Criterium.new

#testing ajax stuff
# respond_to do |format|
#   format.html
#   format.json
# end

有很多关于需要new.js.erb文件(或者说是show.js.erb?)和我的show(?)页面中的div标签的讨论,但是再次,大脑TIRED。我尝试过其中的一些东西,然后从代码中删除,以免误解太多而且无法记住我做了什么。

请告诉我你还需要我还有什么才能回答。非常感谢提前!

1 个答案:

答案 0 :(得分:0)

看起来你需要将params传递给你的'new'动作,然后在实例化Criterium时使用它们:

<%= link_to 'Enter New Information', new_criterium_path(criteria: params[:criteria]) %>

def new
  @criterium = Criterium.new(criteria: params[:criteria])
end