小编rh4*_*mes的帖子

在Ruby on Rails表单中选择和onChange

我浏览了关于这个主题的所有SO问题和答案,但我仍然无法使我的场景工作.我想在选择下拉菜单选项时触发单击按钮操作; 看起来很简单,应该与AJAX非常相似.

以下是我的代码的相关摘录:

<%= form_for(@test, :html => {:id => "form_id", :name => "MyForm", :remote => "true"}) do |form| %>
    <%= form.label "Menu1" %>
    <%= form.select (:Menu1, [["Option1","value1"],["Option2","value2"]], :html_options=>{:onChange=>"javascript: this.form.apply_button_name.click();"}) %>

    <!-- more select menus and text fields here -->

    <div class="actions">
        <%= form.submit "Apply", :name => "apply_button_name", :remote => "true" %>
    </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我使用":remote =>"true"对于表单和按钮都是如此,因为这是让AJAX正常工作的唯一方法.在浏览了一些SO答案之后,我也试过了没有明确的"html_options"和"javascript:"建议,但这没有帮助.我也试过onSelect,而onClick而不是onChange,但仍然没有运气.

生成的HTML如下:

    Menu1
    <select id="test_Menu1" name="test[Menu1]"><option value="value1">Option1</option>
<option value="value2" selected="selected">Option2</option></select>
Run Code Online (Sandbox Code Playgroud)

如您所见,HTML代码中没有onChange事件处理程序; 为什么?任何人都在看我做错了什么?

谢谢你的帮助.

forms select onchange submit

9
推荐指数
2
解决办法
2万
查看次数

重启后自动启动rails服务器

我希望我的rails服务器在每次重启后自动启动,所以我将以下内容添加到我的.bashrc文件中

rvm use 1.9.2
cd /home/user/myapp
rails server
Run Code Online (Sandbox Code Playgroud)

这样,服务器在重新启动后永远不会自动启动,我必须手动启动它.

此外,当我登录启动服务器时,我看到以下消息

Using /usr/local/rvm/gems/ruby-1.9.2-p290
/usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby: symbol lookup error: /usr/local/rvm/gems/ruby-1.9.2-p290/gems/sqlite3-1.3.4/lib/sqlite3/sqlite3_native.so: undefined symbol: sqlite3_initialize
Run Code Online (Sandbox Code Playgroud)

因此,我需要在每次重启后使用"gem install sqlite3"安装sqlite3后我自己做超级用户,然后才能启动rails服务器而不会出现问题.

$ cat /etc/*-release
CentOS release 5.8 (Final)

$ rails -v
Rails 3.1.1

$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?谢谢

sqlite bash centos ruby-on-rails

5
推荐指数
1
解决办法
3801
查看次数

Ajax 请求导致“param is missing or the value is empty”错误

好的,在我解决了这个问题之后,现在我有了这个新的问题,我似乎不太明白。

这是我的观点和 Javascript 代码:

<script language="javascript" type="text/javascript">

function getConfig(){
$.ajax({
    url: "<%= get_config_projects_url %>",
    data: {
        id: <%= @project.id %>,
        unit_mgt_address: $('.unit_mgt_address_class').val(),
    }
});
}

</script>

<%= form_for(@project) do |f| %>
  <input type=button onClick="getConfig()"/>
  <div class="field">
    <%= f.label :Unit Management Address %><br>
    <%= f.text_field :UnitMgtAddress, :class=>'unit_mgt_address_class' %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我的控制器

class ProjectsController < ApplicationController
  before_action :set_project, only: [:show, :edit, :update, :destroy]

  <many other methods go here>

  # GET …
Run Code Online (Sandbox Code Playgroud)

javascript ajax ruby-on-rails scaffolding

5
推荐指数
1
解决办法
2587
查看次数

Ruby http Get 返回截断的响应

我尝试通过 Postman 向设备的 Restful API 发送 HTTP Get,它工作正常,返回了我期望的所有文本。Postman 建议该请求的 Ruby 代码如下:

url = URI('http://192.168.1.5/rest/op/BD1FD3D893613E79')
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request.basic_auth 'admin', 'admin'
request["accept"] = 'Application/json'
response = http.request(request)
puts response.read_body
Run Code Online (Sandbox Code Playgroud)

但是当我在代码中尝试这样做时,它返回了截断的响应(缺少行),并且我必须多次重新发送相同的 Get 才能获取整个文本响应响应。

上面的 Ruby 代码中是否缺少任何内容导致响应被截断?

更新1

我试过这个

url = URI('http://192.168.1.5/rest/op/BD1FD3D893613E79')
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request.basic_auth 'admin', 'admin'
request["accept"] = 'Application/json'
response = http.request(request)
puts response.read_body
response.read_body do |segment|
   puts segment.to_s
end
Run Code Online (Sandbox Code Playgroud)

并产生了这个错误

IOError (Net::HTTPOK#read_body called twice):
Run Code Online (Sandbox Code Playgroud)

更新2

我试过这个

1073 url = URI('http://192.168.1.5/rest/op/BD1FD3D893613E79')
1074 http …
Run Code Online (Sandbox Code Playgroud)

http http-get postman

5
推荐指数
1
解决办法
1466
查看次数