小编LMo*_*LMo的帖子

如何在表单中使用Active Record Enum Radio Buttons?

在我的应用程序中,有一篇关于文章的评论部分.我希望用户能够使用3种不同的选项进行评论.要激活它,我使用的是Active Record Enum.请注意,评论部分嵌套在文章下面.

resources :articles, only: [:index, :show] do
  resources :comments
end
Run Code Online (Sandbox Code Playgroud)

移民:

class AddEnumToCommentModel < ActiveRecord::Migration
  def change
    add_column :comments, :post_as, :integer, default: 0
  end
end
Run Code Online (Sandbox Code Playgroud)

评论模型:

enum post_as: %w(username, oneliner, anonymous)
Run Code Online (Sandbox Code Playgroud)

我试图将其添加到内容视图中,但丢失了.我猜我也必须在我的控制器中做一些事但不确定.

试图观点:

<%= form_for([@article, @comment]) do |f| %>
  <% if @comment.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@comment.errors.count, "error") %> prohibited this comment from being saved:</h2>

      <ul>
      <% @comment.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <h3>Fill in your comment</h3> …
Run Code Online (Sandbox Code Playgroud)

enums radiobuttonlist ruby-on-rails-4

13
推荐指数
4
解决办法
6482
查看次数

LinkedIn OAuth 2.0重定向网址

我试图用LinkedIn Omniauth 2 gem登录用户.我尝试了一些不同的重定向可能性,阅读了几篇文章,没有任何工作.

我想在本地测试一下.Rails 4 app

宝石包括:omniauth omniauth-linkedin-oath2

重定向URL放入框中的几次尝试包括:

https://www.linkedin.com/uas/oauth2/authorization?client_id=759dczzx23nyic&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Flinkedin%2Fcallback&response_type=code&scope=r_basicprofile+r_emailaddress&state=8da572e31a8e66e6b1de54acddd14937d976ed06d7ed3217&client_id=*

  • =需要保持私密的API密钥

    http://localhost:3000
    
    http://localhost:3000/
    
    http://www.localhost:3000
    
    https://localhost:3000
    
    https://localhost:3000/
    
    https://www.localhost:3000
    
    Run Code Online (Sandbox Code Playgroud)

我在整个过程中阅读了这两篇文章,但仍无法尝试找到重定向的正确方法.

https://developer.linkedin.com/forum/register-your-oauth-2-redirect-urls

https://developer.linkedin.com/forum/oauth-20-redirect-url-faq-invalid-redirecturi-error

我需要改变的任何帮助都会很棒.

linkedin oauth-2.0 url-redirection

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

使用Web应用程序上的键盘固定消息栏弹出太高

我有一个自适应Web应用程序.我试图模仿本机移动应用程序中常见的消息栏.但是,即使我将消息栏设置为固定在底部,消息栏也会弹出太高而在键盘出现时变得不固定.

下面的两张图片显示了它是如何开始的,第二张图片显示了它是如何跳起来的.

它如何开始: 消息框开始

如何用键盘跳起来 在此输入图像描述

应用程序在Ruby中.这是消息的表单:

<%= form_for(@message) do |f| %>
  <%= f.text_area :body, placeholder: "Write a message...", class: "message-box", required: true %>
  <%= f.hidden_field :match_id, value: @match.id %>
  <%= f.submit "Send",
    id: "send-message",
    data: { disable_with: "Loading..." }
  %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这是我用来在你输入时展开消息的jquery.我认为重要的是展示我正在使用的内容,以获得有关如何使其坚持到底的建议:

var span = $('<span>').css('display','inline-block')
                      .css('word-break','break-all')
                      .appendTo('body').css('visibility','hidden');

function initSpan(textarea){
  span.text(textarea.text())
      .width(textarea.width())
      .css('font', textarea.css('font'));
}

$('.message-box').on({
    input: function(){
       var text = $(this).val();      
       span.text(text);
       $(this).height(text ? span.height() : '30px');
    },
    focus: function(){           
       initSpan($(this));
    },
    keypress: function(e){
       if(e.which == 13) e.preventDefault(); …
Run Code Online (Sandbox Code Playgroud)

mobile jquery web-applications fixed

7
推荐指数
1
解决办法
80
查看次数

如何在rails app上点击红宝石中的水豚按钮

我正在尝试选择一个带水豚的单选按钮,它找不到单选按钮.这是我的rspec测试,视图和错误.请注意我使用工厂用于用户,技能等.

Rspec测试

  scenario "user chooses a couple skills and moves on to bio" do
    user = create(:user)
    skill = create(:skill)
    skill_two = create(:skill)
    skill_three = create(:skill)
    sign_in(user)
    visit onboard_skills_path

    choose(skill.name)    
  end
Run Code Online (Sandbox Code Playgroud)

视图

  <%= form_for(:onboard_skill, url: onboard_skills_path) do |f| %>
    <ul>
    <% @skills.each do |skill| %>
      <li>
        <%= check_box_tag("skill_ids[]", skill.id, current_user.onboard_skill_ids.include?(skill.id)) %>
        <%= f.label(skill.name) %>
      </li>
    <% end %>
    </ul>
    <%= f.submit "Next >", class: "submit_skills" %>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Unable to find radio button "Development 1"
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails capybara

6
推荐指数
1
解决办法
4276
查看次数

取消选中check_box只能使用rspec/capybara测试

我有一个嵌套的表单,有4个复选框.目前,一切都在浏览器中工作,但我无法获取capybara测试取消选中复选框并保存.

使用Rails 4.2.2和最新版本的capaybara-webkit和rspec

settings.html.erb

  <%= f.fields_for :preferences do |f| %>
    <div class="email-notifications-holder">
      <div class="email-holder">
        <%= f.label :new_match, "Getting a new match each week" %>
        <%= f.check_box :new_match, class: "checkbox new_match_email" %>
      </div>
      <div class="email-holder">
        <%= f.label :match_reminder, "New matches Thursday reminder", class: "match_reminder_email" %>
        <%= f.check_box :match_reminder, default: true, class: "checkbox"   %>
      </div>
      <div class="email-holder">
        <%= f.label :accepted_match, "A Glassbreakers accepted a match", class: "accepted_match_email" %>
        <%= f.check_box :accepted_match, default: true, class: "checkbox"   %>
      </div>
      <div class="email-holder">
        <%= f.label :new_message, …
Run Code Online (Sandbox Code Playgroud)

checkbox rspec ruby-on-rails capybara-webkit

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

如何在Heroku升级中测试多租户应用程序?

我目前正在使用Rails,Heroku和Apartment gem创建一个多租户应用程序.(请注意我知道在Heroku上使用多租户应用程序结构的限制超过10个不同的数据库).我正确设置了我的应用程序,并使用lvh.me让子域在本地正常工作.

自从推送到XXX-staging.herokuapp.com以来,XXX-staging已经是一个子域,所以它抛出了错误:

Apartment::TenantNotFound (One of the following schema(s) is invalid: "XXX-staging" "public"):
Run Code Online (Sandbox Code Playgroud)

有没有办法在Heroku登台环境中测试子域,或者是用另一个SSL通配符购买备用URL的唯一方法?我更愿意,如果那不是我必须做的,因为它可能是昂贵的.

ruby-on-rails heroku multi-tenant apartment-gem

5
推荐指数
0
解决办法
378
查看次数

为什么数组不会随机,随机,限制等?

在我的Rails控制器代码中,我想随机检索每个内容中的三个:

@content = Content.includes(:author).find(params[:id])    
content_sub_categories = @content.subcategories

related_content = []
content_sub_categories.each do |sub_cat|
  related_content << sub_cat.contents
end

@related_content = related_content.rand.limit(3)
Run Code Online (Sandbox Code Playgroud)

rand.limit(3) 不起作用,错误包括:

undefined method `limit' for #<Array:0x007f9e19806bf0>
Run Code Online (Sandbox Code Playgroud)

我熟悉Rails,但仍在学习Ruby.任何帮助都会非常感激.

也许可能是我也以这种方式呈现内容<%= @related_content %>

我正在使用:

  • Rails 3.2.14
  • Ruby 1.9.3

ruby arrays random class limit

0
推荐指数
2
解决办法
1445
查看次数