我一直在编写一个小应用程序,有很多来自stackoverflow的帮助。 基本前提很简单,我在网络上看到了这种function:我试图将一个位置列表绘制到可搜索/可平移的谷歌地图上。 位置存储在后端,控制器将这些位置提供给视图。 涉及AJAX是因为我不想重新加载整个页面。 以下是场景:a)用户通过zipcode搜索位置=>地图加载新位置,搜索获取发送到服务器并映射加载任何标记,如果有任何设置半径,地图设置默认缩放级别; b)用户平移/缩放=>地图停留在用户离开的任何地方,使用视口边界框的搜索被发送到服务器并映射结果。 地图将在初始加载时默认为西雅图,它尝试的第一件事是地理定位用户… 使用gmaps4ails wiki,主要是这个问题答案的修改版本: Google Maps for Rails – 用AJAX更新标记我已经非常接近了。 实际上,这很有效。 这是它的样子: sightings_controller.rb def search if params[:lat] @ll = [params[:lat].to_f, params[:lng].to_f] @sightings = Sighting.within(5, origin: @ll).order(‘created_at DESC’) @remap = true elsif search_params = params[:zipcode] geocode = Geokit::Geocoders::GoogleGeocoder.geocode(search_params) @ll = [geocode.lat, geocode.lng] @sightings = Sighting.within(5, origin: @ll).order(‘created_at DESC’) @remap = true […]
在版本控制下放置Rails项目时,是否排除了任何内容? 例如,日志文件?
我刚刚升级到Snow Leopard,包括安装新的XCode,重新编译了Ruby 1.8和MySQL。 我的Rails应用程序在更新的环境中运行良好,除了一些依赖于ImageScience / FreeImage的图像处理function。 我将MacPorts升级到1.8,删除了所有以前安装的端口,并在1.8中重新安装它们,我认为这将安装64位版本的端口,包括FreeImage。 我还使用以下方法将image_science和RubyInline重新安装为64位gems: sudo env ARCHFLAGS =“ – arch x86_64”gem install RubyInline image_science 现在,当我在需要图像处理的页面上运行我的应用程序时,我在日志中收到此错误: 加载ImageScienceProcessor时出现问题:dlopen(/ myappname / config / initializers /../tmp /.ruby_inline / Inline_ImageScience_cdab.bundle,9):找不到合适的图像。 找到:/myappname/config/initializers/../tmp/.ruby_inline/Inline_ImageScience_cdab.bundle:mach-o,但错误的架构 – /myappname/config/initializers/../tmp/.ruby_inline/Inline_ImageScience_cdab.bundle 有人可以帮我解决这个错误告诉我的内容吗?
我很好奇人们认为对路线进行充分/彻底的测试。 我工作的人似乎想要在我们的路线文件中断言每条路线,无论标准如何。 我觉得这是浪费时间,但也许我错了,我不知道这有什么价值。 在某些情况下,我可以在路由中看到一些价值。 我们仍然有一些响应GET和POST请求的动作,尽管我一直想要摆脱它们。 我们没有任何关于lambdas或任何东西的疯狂约束,但是如果我们这样做,那似乎值得测试。 但是对于正常的资源定义? resources :foo, only: [:index, :show] 我们断言这两条路线都存在,我们声称它们是GET并且它们会转到正确的控制器/动作。 这有什么意义吗? 感觉就像我们刚刚测试Rails一样。 在一个稍微相关的问题上,我更喜欢定义像上面那样的资源路径( only: [:index, :show]部分)。 仅定义resources :foo是否有任何后果resources :foo如果该控制器上只有索引/显示操作,则路径文件中为resources :foo ? 在我看来,它可能只是使用更多的时间和/或内存,但它是否也是一个安全问题,或者是我不知道的非常糟糕的东西?
我刚刚将黄瓜安装到一个新的rails项目中(第一次从头开始设置)并且在运行所有测试( bundle exec cucumber )时它运行得非常好,但是当我运行单个function文件时找不到任何步骤。 我怎么开始调试这个? rails (3.2.13) cucumber-rails (1.3.1) cucumber (>= 1.2.0) # file listing features/ ├── campaigns │ ├── donating_campaigns.feature │ └── viewing_campaigns.feature ├── step_definitions │ └── campaign_steps.rb └── support └── env.rb
我正在寻找一种方法来创建多个csv文件,并在我的rails应用程序中的一个请求中将它们下载为一个zip存档。 要构建存档,我使用rubyzip gem – 只下载rails内置函数send_data。 我遇到的问题是rubyzip的add-function需要一个路径名来加载文件。 但是没有路径,因为我的csv文件是在同一个请求中创建的。 一些代码: # controller action to download zip def download_zip zip = @company.download_all send_data zip, filename: “abc.zip”, type: ‘application/zip’ end # method to create zip def download_all Zip::File.open(‘def.zip’, Zip::File::CREATE) do |zipfile| self.users.each do |user| #some magic to combine zipfile.add() and user.to_csv end end end # method to create csv […]
我有很多主要类别,并希望添加到每个子类别.-> 主要类别 – 子类别 – 子类别 – 子类别 主要类别 – 子类别 – 子类别 – 子类别 很多人建议我使用gem,但由于我对Rails相当新,我宁愿自己学习如何做到这一点,也要学习他们所有的方法。 我应该从Scaffold还是仅仅是Model ? 有人可以解释我如何开始(迁移等)以及如何设置它? 谢谢。
我inheritance了一个Rails(3)应用程序,并试图掌握现有的Cucumber测试。 我在应用程序的’features’文件夹中有以下设置(我错过了任何不相关的文件,例如额外的function和步骤) /features /people new-person.feature /step_definitions people_steps.rb web_steps.rb /support env.rb paths.rb selectors.rb 如果我运行’rake’,它会运行features / people / new-person.feature中的所有function,正确使用step_definitions中列出的步骤。 但是,我不想每次都运行rake因为它需要太长时间,我只想在Cucumber中运行特定的测试,例如cucumber features/people/new-person.feature -l 8 当我这样做时,它运行该function但尚未加载步骤。 我得到了回复: Using the default profile… Feature: Add a new person In order to allocate tasks to people As a community manager I want to add a new person Scenario: Secondary navigation should contain […]
我有一个电子商务网站,当用户登录时,他们可以使用保存的信用卡数据进行购买。 所以,我想使用安全会话。 但是,我在网站上有非SSL页面,用户也需要登录这些页面。 所以我也希望为这个用户提供一个不安全的会话。 我怎么能用Rails做到这一点?
我有一个使用设计的rails应用程序。 我很想知道,在User表中是否有可能以某种方式跟踪新用户来自哪里,HTTP引用者? 我想知道哪些来自Facebook,Twitter,LinkedIn,Google+以跟踪病毒循环。 有任何想法吗? 看到有人这样做吗? 可能? 它应该放在rails应用程序中的哪个位置? 还是很新的。 谢谢