Merge branch 'develop' of https://bdgit.educoder.net/Hjqreturn/pgfqe6ch8 into develop
commit
f8c5a67396
@ -0,0 +1,6 @@
|
||||
class UserAgent < ActiveRecord::Base
|
||||
|
||||
USER_AD = 1 # 广告宣传的引流
|
||||
USER_REGISTER = 2 # 引流注册
|
||||
USER_COMPETITION = 3 # 引流参加竞赛
|
||||
end
|
@ -0,0 +1,42 @@
|
||||
<style>
|
||||
/*//登录弹窗*/
|
||||
.newLogipopup{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-size: 100% 100%;
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
right: 0px;
|
||||
}
|
||||
</style>
|
||||
<div class="educontent newLogipopup" id="backImg" >
|
||||
<div class="pr edu-txt-center height-100 pt110">
|
||||
<div class="login_reg pr login_regs">
|
||||
<div style="position: relative;">
|
||||
|
||||
<a href="javascript:void(0)" onclick="competitionfun();" id="closeIcon" style="position: absolute;right: -20px;top: 36px;">
|
||||
<i class="iconfont icon-shanchudiao"></i>
|
||||
</a>
|
||||
|
||||
<img src="/images/educoder/competitionslog.png" height="580px" width="637px" />
|
||||
|
||||
<a style="position: absolute;left:42%; bottom:18px;" onclick="setcompetitionfun();" >
|
||||
<img height="40px" width="150px" src="/images/educoder/applys.png" />
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function competitionfun(){
|
||||
localStorage.setItem('competition_uid', true);
|
||||
hideModal();
|
||||
}
|
||||
|
||||
function setcompetitionfun(){
|
||||
competitionfun();
|
||||
window.location.href="/competitions"
|
||||
}
|
||||
</script>
|
@ -1,52 +1,54 @@
|
||||
<img src="/images/educoder/teach_ex.jpg" width="100%"/>
|
||||
<div class="educontent">
|
||||
<div class="edu-back-white mb30 mt30">
|
||||
<p class="padding20-30 clearfix bor-bottom-greyE">
|
||||
<span class="font-18 fl color-grey-3">教学案例</span>
|
||||
<%= link_to '发布案例', new_library_path, class: 'white-btn edu-filter-btn-blue fr mr10 mt8', style: 'color: #4CACFF' %>
|
||||
</p>
|
||||
<div class="clearfix pl30 pr30">
|
||||
<ul class="fl library_nav mt20">
|
||||
<li class="<%= params[:type] == 'mine' ? '' : 'active' %>">
|
||||
<%= link_to '全部', libraries_path(search: params[:search]), remote: true %>
|
||||
</li>
|
||||
<li class="<%= params[:type] == 'mine' ? 'active' : '' %>">
|
||||
<%= link_to '我的', libraries_path(search: params[:search], type: 'mine'), remote: true %>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="edu-position fr mt12">
|
||||
<%= hidden_field_tag(:type, params[:type]) %>
|
||||
<input class="winput-300-35 panel-box-sizing" placeholder="输入教学案例标题、编号进行检索" type="text" id="search_name">
|
||||
<a href="javascript:void(0);" class="edu-btn-search font-16 color-grey" id="search"><i class="fa fa-search"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="library-list-container">
|
||||
<%= render partial: 'library_list' %>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(function(){
|
||||
$(".library_nav").on("click","li",function(){
|
||||
$(".library_nav li").removeClass("active");
|
||||
$(this).addClass("active");
|
||||
});
|
||||
|
||||
var searchFunc = function() {
|
||||
var search = $("#search_name").val();
|
||||
var type = $("input[name='type']").val();
|
||||
$.ajax({
|
||||
url: "<%= libraries_path %>",
|
||||
dataType: 'script',
|
||||
data: {search: search, type: type}
|
||||
});
|
||||
};
|
||||
|
||||
$("#search").live("click", searchFunc);
|
||||
$('#search_name').bind('keypress',function(event) {
|
||||
if (event.keyCode == "13") {
|
||||
searchFunc();
|
||||
}
|
||||
});
|
||||
})
|
||||
<img src="/images/educoder/teach_ex.jpg" width="100%"/>
|
||||
<div class="educontent">
|
||||
<div class="edu-back-white mb30 mt30">
|
||||
<p class="padding20-30 clearfix bor-bottom-greyE">
|
||||
<span class="font-18 fl color-grey-3">教学案例</span>
|
||||
<%= link_to '发布案例', new_library_path, class: 'white-btn edu-filter-btn-blue fr mr10 mt8', style: 'color: #4CACFF' %>
|
||||
</p>
|
||||
<div class="clearfix pl30 pr30">
|
||||
<ul class="fl library_nav mt20">
|
||||
<li class="<%= params[:type] == 'mine' ? '' : 'active' %>">
|
||||
<%= link_to '全部', libraries_path(search: params[:search]), remote: true %>
|
||||
</li>
|
||||
<% if User.current.try(:logged?) %>
|
||||
<li class="<%= params[:type] == 'mine' ? 'active' : '' %>">
|
||||
<%= link_to '我的', libraries_path(search: params[:search], type: 'mine'), remote: true %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<div class="edu-position fr mt12 mb10">
|
||||
<%= hidden_field_tag(:type, params[:type]) %>
|
||||
<input class="winput-300-35 panel-box-sizing" placeholder="输入教学案例标题、编号进行检索" type="text" id="search_name">
|
||||
<a href="javascript:void(0);" class="edu-btn-search font-16 color-grey" id="search"><i class="fa fa-search"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="library-list-container">
|
||||
<%= render partial: 'library_list' %>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(function(){
|
||||
$(".library_nav").on("click","li",function(){
|
||||
$(".library_nav li").removeClass("active");
|
||||
$(this).addClass("active");
|
||||
});
|
||||
|
||||
var searchFunc = function() {
|
||||
var search = $("#search_name").val();
|
||||
var type = $("input[name='type']").val();
|
||||
$.ajax({
|
||||
url: "<%= libraries_path %>",
|
||||
dataType: 'script',
|
||||
data: {search: search, type: type}
|
||||
});
|
||||
};
|
||||
|
||||
$("#search").live("click", searchFunc);
|
||||
$('#search_name').bind('keypress',function(event) {
|
||||
if (event.keyCode == "13") {
|
||||
searchFunc();
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
@ -1,93 +1,102 @@
|
||||
<%
|
||||
admin_or_self = admin_or_business? || @library.user_id == User.current.id
|
||||
%>
|
||||
<div class="educontent mb50">
|
||||
<p class="mt10 mb20 clearfix lineh-20">
|
||||
<%= link_to '教学案例', libraries_path, class: 'color-grey-9' %> >
|
||||
<span class="color-grey-3">详情</span>
|
||||
</p>
|
||||
<p class="lineh-25 mb20 clearfix">
|
||||
<span class="font-22 fl mr10 task-hide" style="max-width: 800px">
|
||||
<%= @library.title %>
|
||||
</span>
|
||||
<%= show_library_tags(@library) %>
|
||||
<% if admin_or_self %>
|
||||
<% if @library.pending? %>
|
||||
<span class="fl edu-filter-btn edu-activity-green mt3 ml10">草稿</span>
|
||||
<% elsif @library.processing? %>
|
||||
<span class="fl edu-filter-btn edu-activity-green mt3 ml10">审核中</span>
|
||||
<% elsif @library.refused? %>
|
||||
<span class="fl edu-filter-btn edu-activity-orange mt3 ml10">未通过</span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<%= link_to('返回', libraries_path, class: 'fr color-grey-9 mt5') %>
|
||||
</p>
|
||||
<div class="edu-back-white">
|
||||
<div class="padding30">
|
||||
<div class="df">
|
||||
<%= link_to image_tag(url_to_avatar(@library.user), width: 50, height: 50, class: 'radius mr15 mt3'), user_path(@library.user) %>
|
||||
<div class="flex1">
|
||||
<li class="clearfix">
|
||||
<span class="font-16 fl"><%= @library.user.show_real_name %></span>
|
||||
<% if admin_or_business? || @library.user_id == User.current.id && @library.pending? %>
|
||||
<%= link_to '删除', 'javascript:void(0);', data: { id: @library.id },
|
||||
class: 'white-btn edu-blueline-btn fr ml20 delete-btn' %>
|
||||
<% end %>
|
||||
<% if admin_or_self %>
|
||||
<%= link_to '编辑', edit_library_path(id: @library.id), class: 'white-btn edu-blueline-btn fr' %>
|
||||
<% end %>
|
||||
</li>
|
||||
<li class="clearfix">
|
||||
<span class="fl color-grey-9 mr20"><%= @library.user.school_name %></span>
|
||||
<span class="fr">
|
||||
<span class="fl color-grey-9 mr30">编码:<span class="color-grey-6"><%= @library.uuid %></span></span>
|
||||
<% if @library.published? %>
|
||||
<span class="fl color-grey-9">发布时间:<span class="color-grey-6"><%= @library.published_at.strftime('%Y-%m-%d %H:%M') %></span></span>
|
||||
<% else %>
|
||||
<span class="fl color-grey-9">上传时间:<span class="color-grey-6"><%= @library.created_at.strftime('%Y-%m-%d %H:%M') %></span></span>
|
||||
<% end %>
|
||||
</span>
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="break_full_word new_li" id="labraries_editorMd_content" style="box-sizing: border-box">
|
||||
<textarea style="display:none;"><%= @library.content %></textarea>
|
||||
</div>
|
||||
<div class="mt10 pl20">
|
||||
<%= render partial: 'attachments/links', locals: { attachments: @library.attachments, options: {} } %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var homeworkDescr = editormd.markdownToHTML("labraries_editorMd_content", {
|
||||
htmlDecode: "style,script,iframe", // you can filter tags decode
|
||||
taskList: true,
|
||||
tex: true, // 默认不解析
|
||||
flowChart: true, // 默认不解析
|
||||
sequenceDiagram: true // 默认不解析
|
||||
});
|
||||
$(function(){
|
||||
// 删除
|
||||
$('.delete-btn').on('click', function(){
|
||||
var id = $(this).data('id');
|
||||
op_confirm_tip_1("是否确认删除?", "destroyLibrary(" + id + ");")
|
||||
});
|
||||
})
|
||||
|
||||
function destroyLibrary (id) {
|
||||
$.ajax({
|
||||
type: "DELETE",
|
||||
url: "<%= libraries_path %>/" + id,
|
||||
success: function (data) {
|
||||
if(data && data.status == 0){
|
||||
notice_box_redirect("<%= libraries_path %>", "删除成功");
|
||||
} else {
|
||||
notice_box(data.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
<%
|
||||
admin_or_self = admin_or_business? || @library.user_id == User.current.id
|
||||
%>
|
||||
<div class="educontent mb50">
|
||||
<p class="mt10 mb20 clearfix lineh-20">
|
||||
<%= link_to '教学案例', libraries_path, class: 'color-grey-9' %> >
|
||||
<span class="color-grey-3">详情</span>
|
||||
</p>
|
||||
<p class="lineh-25 mb20 clearfix">
|
||||
<span class="font-22 fl mr10 task-hide" style="max-width: 800px">
|
||||
<%= @library.title %>
|
||||
</span>
|
||||
<%= show_library_tags(@library, class: 'mt3 ml10') %>
|
||||
<% if admin_or_self %>
|
||||
<% if @library.pending? %>
|
||||
<span class="fl edu-filter-btn edu-activity-green mt3 ml10">草稿</span>
|
||||
<% elsif @library.processing? %>
|
||||
<span class="fl edu-filter-btn edu-activity-green mt3 ml10">审核中</span>
|
||||
<% elsif @library.refused? %>
|
||||
<span class="fl edu-filter-btn edu-activity-orange mt3 ml10">未通过</span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<%= link_to('返回', libraries_path, class: 'fr color-grey-9 mt5') %>
|
||||
</p>
|
||||
<div class="edu-back-white">
|
||||
<div class="padding30">
|
||||
<div class="df">
|
||||
<%= link_to image_tag(url_to_avatar(@library.user), width: 50, height: 50, class: 'radius mr15 mt3'), user_path(@library.user) %>
|
||||
<div class="flex1">
|
||||
<li class="clearfix">
|
||||
<span class="font-16 fl"><%= @library.user.show_real_name %></span>
|
||||
<% if admin_or_business? || @library.user_id == User.current.id && @library.pending? %>
|
||||
<%= link_to '删除', 'javascript:void(0);', data: { id: @library.id },
|
||||
class: 'white-btn edu-blueline-btn fr ml20 delete-btn' %>
|
||||
<% end %>
|
||||
<% if admin_or_self %>
|
||||
<%= link_to '编辑', edit_library_path(id: @library.id), class: 'white-btn edu-blueline-btn fr' %>
|
||||
<% end %>
|
||||
</li>
|
||||
<li class="clearfix">
|
||||
<span class="fl color-grey-9 mr20"><%= @library.user.school_name %></span>
|
||||
<span class="fr">
|
||||
<span class="fl color-grey-9 mr30">编码:<span class="color-grey-6"><%= @library.uuid %></span></span>
|
||||
<% if @library.published? %>
|
||||
<span class="fl color-grey-9">发布时间:<span class="color-grey-6"><%= @library.published_at.strftime('%Y-%m-%d %H:%M') %></span></span>
|
||||
<% else %>
|
||||
<span class="fl color-grey-9">上传时间:<span class="color-grey-6"><%= @library.created_at.strftime('%Y-%m-%d %H:%M') %></span></span>
|
||||
<% end %>
|
||||
</span>
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
<!--增加姓名大学-->
|
||||
<div>
|
||||
<span class="fl color-grey-9">作者:</span>
|
||||
<%= @library.author_name %>/<%= @library.author_school_name %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="break_full_word new_li" id="labraries_editorMd_content" style="box-sizing: border-box">
|
||||
<textarea style="display:none;"><%= @library.content %></textarea>
|
||||
</div>
|
||||
<div class="mt10 pl20">
|
||||
<%= render partial: 'attachments/links', locals: { attachments: @library.attachments, options: {} } %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt40">
|
||||
<%= render partial: 'praise_tread/new_praise', locals: { object: @library } %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var homeworkDescr = editormd.markdownToHTML("labraries_editorMd_content", {
|
||||
htmlDecode: "style,script,iframe", // you can filter tags decode
|
||||
taskList: true,
|
||||
tex: true, // 默认不解析
|
||||
flowChart: true, // 默认不解析
|
||||
sequenceDiagram: true // 默认不解析
|
||||
});
|
||||
$(function(){
|
||||
// 删除
|
||||
$('.delete-btn').on('click', function(){
|
||||
var id = $(this).data('id');
|
||||
op_confirm_tip_1("是否确认删除?", "destroyLibrary(" + id + ");")
|
||||
});
|
||||
})
|
||||
|
||||
function destroyLibrary (id) {
|
||||
$.ajax({
|
||||
type: "DELETE",
|
||||
url: "<%= libraries_path %>/" + id,
|
||||
success: function (data) {
|
||||
if(data && data.status == 0){
|
||||
notice_box_redirect("<%= libraries_path %>", "删除成功");
|
||||
} else {
|
||||
notice_box(data.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
@ -0,0 +1,66 @@
|
||||
<table class="edu-pop-table edu-txt-center" cellspacing="0" cellpadding="0" style="table-layout: fixed;">
|
||||
<thead>
|
||||
<th width="10%">ID</th>
|
||||
<th width="10%">代理人登录名</th>
|
||||
<th width="10%">代理人姓名</th>
|
||||
<th width="20%">学校</th>
|
||||
<th width="10%">竞赛报名状态</th>
|
||||
<th width="10%">ip</th>
|
||||
<th width="10%">ip</th>
|
||||
<th width="20%">负责人</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @user_agents.each do |ua| %>
|
||||
<% user = User.find_by_login(ua.key) %>
|
||||
<% user_extension = user.extensions %>
|
||||
<% school = user_extension.school %>
|
||||
<tr>
|
||||
<td><%= ua.id %></td>
|
||||
<td class="edu-txt-left"><span><%= link_to ua.key, user_path(ua.key), :target => "_blank" %></span></td>
|
||||
<td><%= link_to user.try(:show_real_name), user_path(user), target:'_blank' %></td>
|
||||
<td><%= school.name %></td>
|
||||
<td><%= "--" %></td>
|
||||
<td><%= ua.ip %></td>
|
||||
<td><%= "理由" %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="cl"></div>
|
||||
<div style="text-align:center;" class="new_expand">
|
||||
<div class="pages_user_show" style="width:auto; display:inline-block;margin: 18px 0;">
|
||||
<ul id="homework_pository_ref_pages">
|
||||
<%= pagination_links_full @agents_pages, @agents_count, :per_page_links => false, :flag => true, :is_new => true %>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(".eud-pointer").on("click", function(ev){
|
||||
var nArrow = $(this).find("i");
|
||||
var sx_order = nArrow.hasClass("fa-long-arrow-down") ? "asc" : "desc";
|
||||
$.ajax({
|
||||
url:"<%= shixuns_managements_path %>",
|
||||
data: {sx_order:sx_order},
|
||||
dateType: "script"
|
||||
});
|
||||
});
|
||||
$(".shixun_webssh").on("click", 'input', function(ev){
|
||||
var id = $(ev.target).parent().find("div").html();
|
||||
var status = $(ev.target).parent().find("input").is(':checked');
|
||||
$.ajax({
|
||||
url:"<%= update_webssh_managements_path %>",
|
||||
dataType: "script",
|
||||
data:{shixun_id: id, status: status}
|
||||
});
|
||||
});
|
||||
|
||||
$(".shixun_hidden").on("click", 'input', function(ev){
|
||||
var id = $(ev.target).parent().find("div").html();
|
||||
$.ajax({
|
||||
url:"<%= update_shixun_hidden_managements_path %>",
|
||||
dataType: "script",
|
||||
data:{shixun_id: id}
|
||||
});
|
||||
});
|
||||
</script>
|
@ -0,0 +1,19 @@
|
||||
<%= form_tag(url_for(departments_part_managements_path),:id=>"department_part_search",:method => "post",:remote=>true) do %>
|
||||
<div class="edu-con-top clearfix mb20 xmt10 bor-grey-e mt10">
|
||||
<input class="fl task-form-20 task-height-30 ml25" id="shixun_Look_name" name="search" maxlength="" placeholder="输入关键字进行搜索" type="text" >
|
||||
<a href="javascript:void(0);" class="fl task-btn task-btn-orange ml5 mt2" onclick="$('#department_part_search').submit();">搜索</a>
|
||||
<a href="javascript:clearSearchCondition();" class="fl task-btn ml5 mt2" id="clear_contents">清除</a>
|
||||
<%= link_to "关联代理人",add_departments_part_managements_path(),:class => "task-btn task-btn-green fr mt6 mr30" %>
|
||||
<input name="sx_order" type="hidden">
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="edu-con-bg01 mt15" id="managements_department_part_list">
|
||||
<%= render :partial => "managements/user_agent_list" %>
|
||||
</div>
|
||||
<script>
|
||||
function clearSearchCondition() {
|
||||
$("#shixun_Look_name").val("");
|
||||
$.get('<%= departments_part_managements_path() %>')
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,42 @@
|
||||
<%
|
||||
praised = PraiseTread.praised(object)
|
||||
praise_num = get_praise_num(object) || 0
|
||||
%>
|
||||
<p class="noteDetailPoints plus-praise-btn" data-tip-down="点赞" style="<%= praised ? 'display:block' : 'display:none' %>"><i class="iconfont icon-dianzan"></i><br><span class="praise-num"><%= praise_num %></span></p>
|
||||
<p class="noteDetailPointsBCD1E3 minus-praise-btn" data-tip-down="取消点赞" style="<%= praised ? 'display:none' : 'display:block' %>"><span>已赞</span><br><span class="praise-num"><%= praise_num %></span></p>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
var $plusPraiseBtn = $('.plus-praise-btn');
|
||||
var $minusPraiseBtn = $('.minus-praise-btn');
|
||||
var praiseNum = parseInt(<%= praise_num %>);
|
||||
|
||||
$plusPraiseBtn.on('click', function(){
|
||||
$.ajax({
|
||||
method: "get",
|
||||
url: "<%= praise_tread_praise_plus_path(obj_id: object.id, obj_type: object.class) %>",
|
||||
dataType: 'json',
|
||||
success: function(){
|
||||
$plusPraiseBtn.hide();
|
||||
praiseNum += 1;
|
||||
$minusPraiseBtn.find('.praise-num').html(praiseNum);
|
||||
$minusPraiseBtn.show();
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
$minusPraiseBtn.on('click', function(){
|
||||
$.ajax({
|
||||
method: "get",
|
||||
url: "<%= praise_tread_praise_minus_path(obj_id: object.id, obj_type: object.class) %>",
|
||||
dataType: 'json',
|
||||
success: function(){
|
||||
$minusPraiseBtn.hide();
|
||||
praiseNum -= 1;
|
||||
$plusPraiseBtn.find('.praise-num').html(praiseNum);
|
||||
$plusPraiseBtn.show();
|
||||
}
|
||||
})
|
||||
});
|
||||
})
|
||||
</script>
|
@ -0,0 +1,7 @@
|
||||
class AddColumnsToLibraries < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :libraries, :author_name, :string
|
||||
add_column :libraries, :author_school_name, :string
|
||||
add_column :libraries, :cover_id, :integer
|
||||
end
|
||||
end
|
@ -0,0 +1,12 @@
|
||||
class CreateUserAgents < ActiveRecord::Migration
|
||||
def change
|
||||
create_table :user_agents do |t|
|
||||
t.string :type
|
||||
t.string :key
|
||||
t.string :ip
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
add_index(:user_agents, :ip, :unique => true)
|
||||
end
|
||||
end
|
@ -0,0 +1,8 @@
|
||||
class ModifyTypeForUserAgents < ActiveRecord::Migration
|
||||
def up
|
||||
rename_column :user_agents, :type, :agent_type
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
After Width: | Height: | Size: 9.5 KiB |
After Width: | Height: | Size: 894 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 720 B |
After Width: | Height: | Size: 169 B |
@ -0,0 +1,7 @@
|
||||
FactoryGirl.define do
|
||||
factory :user_agent do
|
||||
type 1
|
||||
key "MyString"
|
||||
ip "MyString"
|
||||
end
|
||||
end
|
@ -0,0 +1,5 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe UserAgent, :type => :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
Loading…
Reference in new issue