在控制器HomePage.prototype.getFile = function() {
var filePath = fs.path.join(fs.knownFolders.currentApp().path, "myFile.txt");
storage.createDirectory("myNewDir");
httpModule.getFile({
url: "https://content.dropboxapi.com/2/files/download",
method: "POST",
headers: { "Content-Type": "",
"Dropbox-API-Arg": JSON.stringify({"path": "/path/file"}),
"Authorization": "*****" },
}, storage.buildAbsolutePath()+"/myNewDir").then(function (response) {
console.log(JSON.stringify(response));
}, function (e) {
console.log("Error occurred " + e);
});}
中,我有一个将结果发布到目标网址的自定义操作,我想为此操作构建一个表单。我不打算将任何字段保存到DB中我只是将它们传递给review_queue
动作的参数。
post_review
在视图中,我有一个将填写并提交的表单,它应该在提交表单时发送原因,我在表单中设置def post_review
RestClient::Request.execute(:method => :post,
:url => Rails.application.secrets['target_url'],
:content_type => :json,
:payload => @result_params.merge!(params[:reasons]).to_json,
:headers => HEADERS)
end
和review_queue_id
,因为这些是静态的,但原因应该来自textarea
status
错误消息:
<%= form_for(:review_queue, url: { action: 'post_review', :review_queue_id => @review_queue.id, :status => 'accepted'} ) do |f| %>
<div class='form-group'>
<label for='comment'>Please give a reason? (required)</label>
<%= f.text_area(:reasons, placeholder: 'Your commentns ...', rows: 9, class: 'form-control') %>
</div>
<div class='modal-footer'>
<%= f.submit 'Approve', class: 'btn btn-success btn-decission btn-modal-left-side' %>
<button type='button' class='btn btn-default' data-dismiss='modal'>Close</button>
</div>
<% end %>
似乎rails在这里假设MVC架构,并假设我想将原因传递给NoMethodError - undefined method `reasons' for #<ReviewQueueApplication:0x007fa7ff7832d8>:
模型。没有原因列,所以它删除了no方法错误。有没有办法指明表格是“临时的”&#39;并且只到控制器?
这似乎应该是一件简单的事情,但这里有一些铁轨魔术。
答案 0 :(得分:1)
rails helper form_for用于rails资源的表单。您想使用form_tag帮助器。搜索form_for和form_tag here以获取有关这两种方法的更多信息。
答案 1 :(得分:1)
NoMethodError - 未定义的方法`reason' ReviewQueueApplication:0x007fa7ff7832d8
form_for
假设您要为 模型对象 创建表单,并希望 字段存在 在特定的 模型表 (正常情况下)。
您应该使用form_tag
<%= form_tag post_review_path, method: :get, :review_queue_id => @review_queue.id, :status => 'accepted'} ) do |f| %>
<div class='form-group'>
<label for='comment'>Please give a reason? (required)</label>
<%= text_area_tag(:reasons, placeholder: 'Your commentns ...', rows: 9, class: 'form-control') %>
</div>
<div class='modal-footer'>
<%= submit_tag 'Approve', class: 'btn btn-success btn-decission btn-modal-left-side' %>
<button type='button' class='btn btn-default' data-dismiss='modal'>Close</button>
</div>
<% end %>
在控制器中访问它params[:reasons]
。另外,如果您注意到,我已将method: :get
添加到form_tag
,因为您不想将信息保存到 数据库