【发布时间】:2012-06-05 00:05:04
【问题描述】:
我正在尝试允许用户将已保存的任务“导入”到教学大纲帖子中。教学大纲有许多任务,教学大纲表单是一个嵌套表单,用户可以在其中“添加任务”,这将附加一个新的任务文本框。
当我“导入”任务时,我希望 javascript
1.点击“添加任务”链接(添加嵌套表单)
2.在ckeditor文本框中输入“导入任务”的值。
_IMPORT_FORM.HTML.ERB
<%= form_tag(import_missions_path, :method => :post, :id => "import-js" ) do |f| %>
<ul>
<% current_user.folders.find_by_order(1).missions.each do |mission| %>
<li> <%= check_box_tag "mission_ids[]", mission.id %>
<%= mission.id.to_s + ". " + mission.title %> </li>
<% end %>
</ul>
<%= submit_tag "Import ", :class => 'btn btn-primary' %>
<% end %>
然后转到 SYLLABUSES#IMPORT
def import
@missions_hash = []
#loop through each mission id from :missions_id
params[:mission_ids].each do |id|
@missions_hash << Mission.find(id)
end
respond_to do |format|
format.html { redirect_to edit_syllabus_path(@syllabus), notice: "imported" }
format.js { render 'folders/import.js' }
end
end
然后我想渲染 IMPORT.JS.ERB 文件,并传入@missions_hash。下面的代码可能是错误的,这是我需要帮助修复它的地方。
IMPORT.JS.ERB
//loop for each mission passed in
<% @mission_hash.each do |mission| %>
//click add missions
$('#add-missions-button').trigger('click');
//pass in mission.title & mission.content to form textbox value
<% end %>
将 Ruby 参数传递到这个 Javascript.erb 文件的正确语法是什么?另外,我想将导入的任务的“标题”和“内容”复制到新添加的任务表单框中:
<%= f.text_field :title, :class =>'row span6' %>
<%= f.cktext_area :content, :toolbar => 'MyToolbar', :class => 'row span6', :rows => '5', :placeholder => "What is the first step a learner should do? (e.g. Watch an intro video, read certain article)" %>
如何将其复制到这些文本框的值中,以便用户在导入后对其进行编辑?
我意识到这个问题的组织很糟糕,但我试图在不解释整个背景的情况下使其尽可能简单。我还是个初学者,请谅解..
【问题讨论】:
-
基本上你试图让视图
import.js.erb呈现与视图_import_form.html.erb相同的内容? -
不,这样想吧。一天有很多任务,但有时您需要在不同的一天执行相同的任务。因此,您无需每次都键入该任务,而是保存该任务,然后将其“导入”到新的一天。但我不只是想让该任务成为新一天的孩子,因为我想让创建者在文本框中编辑该任务的选项保持打开状态。所以基本上我只想复制任务的内容,然后用 javascript/ajax 把它放到文本框中。
标签: javascript ruby-on-rails ruby-on-rails-3 forms parameters